1.Nacos简介
Nacos 提供了一组简单易用的特性集,实现动态服务发现、服务配置、服务元数据及流量管理。用来取代以前常用的注册中心(zookeeper , eureka等等),以及配置中心(spring cloud config等等)。
参考文档:https://nacos.io/zh-cn/docs/what-is-nacos.html
2.Nacos关键特性
服务发现和服务健康监测
服务注册:
Spring Cloud Nacos Discovery遵循Spring Cloud通用标准,并实现了三个接口:AutoServiceRegistration,ServiceRegistry和Registration。在Spring Cloud应用程序的启动阶段,将监视WebServerInitializedEvent事件。在初始化Web容器之后收到WebServerInitializedEvent事件时,将触发注册操作,并调用ServiceRegistry register方法将服务注册到Nacos Server。
服务发现:
NacosServerList实现com.netflix.loadbalancer.ServerList接口,并将其自动注入@ConditionOnMissingBean下。功能区默认为集成。如果需要更可自定义,则可以使用@Autowired注入NacosRegistration Bean,并直接通过其拥有的NamingService字段的内容调用Nacos API。
动态配置服务
服务及其元数据管理
- 参考文档:https://nacos.io/zh-cn/docs/use-nacos-with-springcloud.html(Nacos SpringCloud)
3.Nacos集群部署说明
在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf,请每行配置成ip:port。
参考文档:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
4.Nacos配置
4.1 自定义命名空间
命名空间:用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
4.2 自定义Group配置
4.3 自定义扩展数据id配置
4.4 配置刷新
配置刷新使用 @RefreshScope注解。代码示例:
调用结果:
更新配置后,重新调用返回结果:
5.服务启动
启动加载的配置文件
其中:blade.ymal配置文件中进行服务器配置、spring配置、feign配置、hystrix配置、ribbon配置等公共配置
blade-dev.yaml配置文件中进行redis、数据库连接等配置(也可添加)