springcloud微服务篇--5.Nacos注册中心

目录

一、认识Nacos

二、集成nacos

1.1添加依赖

 1.2 注释掉order-service和user-service中原有的eureka依赖。(避免冲突)

1.3 注释eureka之后,添加nacos的客户端依赖:

三、服务注册到nacos

1、修改配置文件

2、启动并测试

 四、总结

 五、拓展。

1.Nacos服务分级存储模型。

2.服务跨集群调用问题 

​编辑 3.服务集群属性。

4.总结 

5.根据权重负载均衡 

6.环境隔离 - namespace 

7、nacos注册中心细节分析 

1、临时实例和非临时实例 

8、nacos与eureka对比

 9、nacos配置--交给nacos来配置。

1.在Nacos中添加配置信息:

​编辑 2.引入Nacos的配置管理客户端依赖​编辑​编辑

3、将配置交给Nacos管理的步骤 总结。

10.nacos配置热更新:自动刷新 

11、多环境配置共享 

12、Nacos集群搭建


一、认识Nacos

Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。

安装Nacos 

非常简单就不在啰嗦了,可以自行安装,也可私信我给与安装教程。

二、集成nacos

1.1添加依赖

1.1 在cloud-demo父工程中添加spring-cloud-alilbaba的管理依赖: 

 
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2.2.5.RELEASE
                pom
                import
            

 1.2 注释掉order-service和user-service中原有的eureka依赖。(避免冲突)

 springcloud微服务篇--5.Nacos注册中心_第1张图片

1.3 注释eureka之后,添加nacos的客户端依赖:


            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        

三、服务注册到nacos

1、修改配置文件

修改user-service&order-service中的application.yml文件,注释eureka地址,添加nacos地址:

springcloud微服务篇--5.Nacos注册中心_第2张图片

2、启动并测试

 springcloud微服务篇--5.Nacos注册中心_第3张图片

http://192.168.130.141:8848/nacos/index.html 访问 默认用户密码:nacos  nacos

springcloud微服务篇--5.Nacos注册中心_第4张图片

 四、总结

Nacos服务搭建

1.下载安装包

2.解压

3.在bin目录下运行指令:startup.cmd -m standalone

Nacos服务注册或发现

1.引入nacos.discovery依赖

2.配置nacos地址spring.cloud.nacos.server-addr

 五、拓展。

1.Nacos服务分级存储模型。

springcloud微服务篇--5.Nacos注册中心_第5张图片

2.服务跨集群调用问题 

1.服务调用尽可能选择本地集群的服务,跨集群调用延迟较高
2.本地集群不可访问时,再去访问其它集群

springcloud微服务篇--5.Nacos注册中心_第6张图片 3.服务集群属性。

1.修改application.yml,添加如下内容:

springcloud微服务篇--5.Nacos注册中心_第7张图片

 2.在Nacos控制台可以看到集群变化

springcloud微服务篇--5.Nacos注册中心_第8张图片

 springcloud微服务篇--5.Nacos注册中心_第9张图片

 springcloud微服务篇--5.Nacos注册中心_第10张图片

 NacosRule负载均衡策略

优先选择同集群服务实例列表

本地集群找不到提供者,才去其它集群寻找,并且会报警告 确定了可用实例列表后,再采用随机负载均衡挑选实例

 测试:可以发现,优先调用HZ的微服务。

4.总结 

1.Nacos服务分级存储模型

一级是服务,例如userservice

二级是集群,例如杭州或上海

三级是实例,例如杭州机房的某台部署了userservice的服务器

2.如何设置实例的集群属性

修改application.yml文件,添加spring.cloud.nacos.discovery.cluster-name属性即可

5.根据权重负载均衡 

1.实际部署中会出现这样的场景:

服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求

Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。

springcloud微服务篇--5.Nacos注册中心_第11张图片

1.实例的权重控制

Nacos控制台可以设置实例的权重值,0~1之间 同集群内的多个实例,权重越高被访问的频率越高

权重设置为0则完全不会被访问 

6.环境隔离 - namespace 

Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离

 springcloud微服务篇--5.Nacos注册中心_第12张图片

1.在Nacos控制台可以创建namespace,用来隔离不同环境

springcloud微服务篇--5.Nacos注册中心_第13张图片 2.然后填写一个新的命名空间信息:

springcloud微服务篇--5.Nacos注册中心_第14张图片

3.保存后会在控制台看到这个命名空间的id: 

springcloud微服务篇--5.Nacos注册中心_第15张图片 4.修改order-service的application.yml,添加namespace:配置dev的id:表示这个微服务就在dev分支中。

springcloud微服务篇--5.Nacos注册中心_第16张图片 5.重启查看。

springcloud微服务篇--5.Nacos注册中心_第17张图片

每个namespace都有唯一id

服务设置namespace时要写id而不是名称

不同namespace下的服务互相不可见 

7、nacos注册中心细节分析 

springcloud微服务篇--5.Nacos注册中心_第18张图片

1、临时实例和非临时实例 

 服务注册到Nacos时,可以选择注册为临时或非临时实例,通过下面的配置来设置:

springcloud微服务篇--5.Nacos注册中心_第19张图片 临时实例宕机时,会从nacos的服务列表中剔除,而非临时实例则不会。

8、nacos与eureka对比

1、Nacos与eureka的共同点

都支持服务注册和服务拉取

都支持服务提供者心跳方式做健康检测

2、Nacos与Eureka的区别

Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式

临时实例心跳不正常会被剔除,非临时实例则不会被剔除

Nacos支持服务列表变更的消息推送模式,服务列表更新更及时

Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;

Eureka采用AP方式

 9、nacos配置--交给nacos来配置。

1.在Nacos中添加配置信息:

springcloud微服务篇--5.Nacos注册中心_第20张图片

springcloud微服务篇--5.Nacos注册中心_第21张图片

springcloud微服务篇--5.Nacos注册中心_第22张图片 2.引入Nacos的配置管理客户端依赖springcloud微服务篇--5.Nacos注册中心_第23张图片springcloud微服务篇--5.Nacos注册中心_第24张图片
3、将配置交给Nacos管理的步骤 总结。

1、Nacos中添加配置文件

2、在微服务中引入nacos的config依赖

3、在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个文件。

10.nacos配置热更新:自动刷新 

Nacos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现:

方式一:在@Value注入的变量所在类上添加注解@RefreshScope

springcloud微服务篇--5.Nacos注册中心_第25张图片

方式二:使用@ConfigurationProperties注解 

springcloud微服务篇--5.Nacos注册中心_第26张图片

 总结:

Nacos配置更改后,微服务可以实现热更新,方式:

通过@Value注解注入,结合@RefreshScope来刷新

通过@ConfigurationProperties注入,自动刷新 注意事项: 不是所有的配置都适合放到配置中心,维护起来比较麻烦 建议将一些关键参数,需要运行时调整的参数放到nacos配置中心,一般都是自定义配置。

11、多环境配置共享 

springcloud微服务篇--5.Nacos注册中心_第27张图片

springcloud微服务篇--5.Nacos注册中心_第28张图片

springcloud微服务篇--5.Nacos注册中心_第29张图片 springcloud微服务篇--5.Nacos注册中心_第30张图片

springcloud微服务篇--5.Nacos注册中心_第31张图片 总结:

微服务默认读取的配置文件:

1、[服务名]-[spring.profile.active].yaml,默认配置

2、[服务名].yaml,多环境共享

不同微服务共享的配置文件:

1、通过shared-configs指定

2、通过extension-configs指定

优先级: 环境配置 >服务名.yaml > extension-config > extension-configs > shared-configs > 本地配置

12、Nacos集群搭建

Nacos生产环境下一定要部署为集群状态。

springcloud微服务篇--5.Nacos注册中心_第32张图片

集群搭建步骤:

1、搭建MySQL集群并初始化数据库表

2、下载解压nacos

3、修改集群配置(节点信息)、数据库配置

4、分别启动多个nacos节点

5、nginx反向代理 

你可能感兴趣的:(springcloud,spring,cloud,微服务,java,spring,boot,后端,spring)