微服务轮子项目(12) - nacos注册中心(上)

简介: 微服务轮子项目(12) - nacos注册中心

1. 概述

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

关键特性包括:

  • 服务发现和服务健康监测
  • 动态配置服务
  • 动态 DNS 服务
  • 服务及其元数据管理

相关资料:

2. 设计模型

2.1 ER模型

2.2 资源模型

3. 部署

3.1 依赖环境

  • 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac
  • 64 bit JDK 1.8+
  • Maven 3.2.x+

3.2 编译

进入nacos的目录执行以下maven指令

mvn -Prelease-nacos clean install -U

3.3 运行

#进入nacos/distribution目录下,找到对应版本的编译后的文件夹
cd distribution/target/nacos-server-$version/nacos/bin
#Linux/Unix/Mac
sh startup.sh -m standalone
#Windows
cmd startup.cmd

3.4 访问

http://127.0.0.1:8848/nacos

4. 配置中心

4.1 集成项目

引入jar:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

bootstrap.yml增加以下配置:

spring:
  cloud:
    nacos:
      config:
        server-addr: ip:prot  #nacos的地址
        file-extension: yml   #配置文件格式
        shared-dataids: common.yml #公共配置文件

4.2 核心功能介绍

4.2.1 全局共用配置

可通过以下方式配置所有项目共享的配置项:

spring:
  cloud:
    nacos:
      config:
        shared-dataids: common.yml
        refreshable-dataids: common.yml

shared-dataids: 配置全局的配置名称

refreshable-dataids: 配置需要自动刷新的全局配置(默认不支持自动刷新)

4.2.2 自动刷新
//配置类上添加RefreshScope注解
@RefreshScope
4.2.3 不同环境的配置文件隔离

1.Nacos本身的地址

  • 直接通过运行参数设置
  • 例如开发环境的nacos地址为127.0.0.1:8848,而生产环境的nacos地址为192.168.28.130,部署生产环境时只需要在项目的启动参数添加以下内容
//以下参数是本项目个性化的,能同时影响配置中心和注册中心的地址
-Dzlt.nacos.server-addr=192.168.28.130:8848

2.业务配置项,总共有3种方法实现(选择一种即可)

1.通过spring.profiles.active

//通过运行参数设置
-Dspring.profiles.active=dev

2.通过Nacos 的 Group

//通过运行参数设置
-Dspring.cloud.nacos.config.group=DEVELOP_GROUP

3.通过Nacos 的 Namespace

//通过运行参数设置,值是namespace对应的id,id值可以在Nacos的控制台获取
-Dspring.cloud.nacos.config.namespace=b3404bc0-d7dc-4855-b519-570ed34b62d7
4.2.3.1 多环境总结

第一种:通过DataID与profile实现

  • 优点:这种方式与Spring Cloud Config的实现非常像,用过Spring Cloud Config的用户,可以毫无违和感的过渡过来,由于命名规则类似,所以要从Spring Cloud Config中做迁移也非常简单。
  • 缺点:这种方式在项目与环境多的时候,配置内容就会显得非常混乱。配置列表中会看到各种不同应用,不同环境的配置交织在一起,非常不利于管理。
  • 建议:项目不多时使用,或者可以结合 Group对项目根据业务或者组织架构做一些拆分规划。

第二种:通过Group实现

  • 优点:通过 Group按环境讲各个应用的配置隔离开。可以非常方便的利用 DataID和 Group的搜索功能,分别从应用纬度和环境纬度来查看配置。
  • 缺点:由于会占用 Group纬度,所以需要对 Group的使用做好规划,毕竟与业务上的一些配置分组起冲突等问题。
  • 建议:这种方式虽然结构上比上一种更好一些,但是依然可能会有一些混乱,主要是在 Group的管理上要做好规划和控制。

第三种:通过Namespace实现

  • 优点:官方建议的方式,通过 Namespace来区分不同的环境,释放了 Group的自由度,这样可以让 Group的使用专注于做业务层面的分组管理。同时,Nacos控制页面上对于 Namespace也做了分组展示,不需要搜索,就可以隔离开不同的环境配置,非常易用。
  • 缺点:没有啥缺点,可能就是多引入一个概念,需要用户去理解吧。
  • 建议:直接用这种方式长远上来说会比较省心。虽然可能对小团队而言,项目不多,第一第二方式也够了,但是万一后面做大了呢?

多环境注意:不论用哪一种方式实现。对于指定环境的配置(spring.profiles.active=DEV、spring.cloud.nacos.config.group=DEV_GROUP、spring.cloud.nacos.config.namespace=83eed625-d166-4619-b923-93df2088883a),都不要配置在应用的bootstrap.properties中。而是在发布脚本的启动命令中,用-Dspring.profiles.active=DEV的方式来动态指定,会更加灵活!

Nacos使用注意:Nacos本身的相关配置必须都放在bootstrap.yml文件中,如果在Nacos添加了应用的配置文件:

  1. 应用读取配置后只会覆盖本地相同key的配置
  2. 应用读取配置后会缓存起来,就算停掉Nacos也会生效
目录
相关文章
|
14天前
|
Cloud Native Java Nacos
微服务时代的新宠儿!Spring Cloud Nacos实战指南,带你玩转服务发现与配置管理,拥抱云原生潮流!
【8月更文挑战第29天】Spring Cloud Nacos作为微服务架构中的新兴之星,凭借其轻量、高效的特点,迅速成为服务发现、配置管理和治理的首选方案。Nacos(命名和配置服务)由阿里巴巴开源,为云原生应用提供了动态服务发现及配置管理等功能,简化了服务间的调用与依赖管理。本文将指导你通过五个步骤在Spring Boot项目中集成Nacos,实现服务注册、发现及配置动态管理,从而轻松搭建出高效的微服务环境。
77 0
|
24天前
|
Cloud Native Java Nacos
微服务注册中心-Nacos概述
该博客文章提供了对Nacos的全面概述,包括其基本介绍、与Spring Cloud集成的优势、主要功能以及如何在Spring Cloud Alibaba项目中作为服务注册中心使用Nacos。文章解释了Nacos是一个动态服务发现、配置管理和服务管理平台,支持服务发现、健康监测、动态配置、DNS服务和元数据管理。还介绍了如何下载和启动Nacos服务器,以及如何将微服务注册到Nacos中,包括修改pom.xml文件引入依赖、配置application.properties文件和使用@EnableDiscoveryClient注解开启服务注册发现功能。
微服务注册中心-Nacos概述
|
25天前
|
JSON Nacos 开发工具
微服务通过nacos实现动态路由
微服务通过nacos实现动态路由
45 7
|
26天前
|
负载均衡 Java Nacos
EureKa详解:微服务发现与注册的利器
EureKa详解:微服务发现与注册的利器
|
14天前
|
存储 供应链 Nacos
Nacos Stream 引领微服务异步消息潮流,为数字化转型保驾护航,你跟上了吗?
【8月更文挑战第29天】在微服务架构中,异步消息处理框架至关重要。Nacos Stream 通过可靠的消息传递机制、优秀的扩展性及灵活的消息过滤与路由功能,在电商系统等场景下展现了巨大价值。其简化了开发过程,支持高并发消息处理,确保了微服务系统的稳定运行与平滑扩展,为复杂系统的构建提供了强有力的消息通信保障。
24 0
|
16天前
|
Kubernetes Nacos 微服务
微服务注册与发现的原理与实现
微服务注册与发现的原理与实现
|
27天前
|
Java Nacos Docker
"揭秘!Docker部署Seata遇上Nacos,注册成功却报错?这些坑你不得不防!一网打尽解决秘籍,让你的分布式事务稳如老狗!"
【8月更文挑战第15天】在微服务架构中,Nacos搭配Seata确保数据一致性时,Docker部署Seata后可能出现客户端连接错误,如“can not connect to services-server”。此问题多由网络配置不当、配置文件错误或版本不兼容引起。解决策略包括:调整Docker网络设置确保可达性;检查并修正`file.conf`和`registry.conf`中的Nacos地址和端口;验证Seata与Nacos版本兼容性;修改配置后重启服务;参考官方文档和最佳实践进行配置。通过这些步骤,能有效排除故障,保障服务稳定运行。
34 0
|
27天前
|
Kubernetes Nacos 微服务
【技术难题破解】Nacos v2.2.3 + K8s 微服务注册:强制删除 Pod 却不消失?!7步排查法+实战代码,手把手教你解决Nacos Pod僵死问题,让服务瞬间满血复活!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但有时会遇到“v2.2.3 k8s 微服务注册nacos强制删除 pod不消失”的问题。本文介绍此现象及其解决方法,帮助开发者确保服务稳定运行。首先需检查Pod状态与事件、配置文件及Nacos配置,确认无误后可调整Pod生命周期管理,并检查Kubernetes版本兼容性。若问题持续,考虑使用Finalizers、审查Nacos日志或借助Kubernetes诊断工具。必要时,可尝试手动强制删除Pod。通过系统排查,通常能有效解决此问题。
40 0
|
27天前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
61 0
|
14天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。

热门文章

最新文章