最近,阿里开源的nacos比较火,能够和springcloud和dubbo共用,对dubbo升级到springcloud很是的方便。这里学习一下他的配置和注册中心。我主要记录一下它的使用方式和踩得坑。html
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。git
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。github
以上是从nacos官网摘抄下来的,总结一下nacos有如下有点几个优势:
(1)它支持配置中心管理(含图形化界面)
(2)部署交付简单
(3)包含注册中心,不用独自搭建配置和注册中心。
(4)完美集成spring cloud和dubbo拓展性好spring
(1)从 Github 上下载源码方式
------ git clone https://github.com/alibaba/na...
------ cd nacos/
------ mvn -Prelease-nacos clean install -U
------ ls -al distribution/target/
------ cd distribution/target/nacos-server-$version/nacos/bin数据库
(2)解压,启动nacos
------ unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
------ cd nacos/bin
------ sh startup.sh -m standalone
完成,集群高可用请自行研究,本文不过多赘述。bootstrap
springcloud使用nacos做为配置中心特别简单。只须要添加依赖,使用bootstrap配置注册中心地址便可。
(1)添加nacos的配置中心依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
(2)配置bootstrap.properties文件
---- #配置服务的名字
---- spring.application.name=provider-service
---- #nacos配置中心的地址
---- spring.cloud.nacos.config.server-addr=nacos.ailijie.top
---- #nacos配置的编码方式
---- spring.cloud.nacos.config.encode=utf-8 架构
---- #配置组名子,须要在nacos的配置设置,否则找不到
---- spring.cloud.nacos.config.group=PROVIDER_GROUP
---- #配置后缀,properties不须要
---- spring.cloud.nacos.config.file-extension=yml
---- #加载nacos多个配置文件
---- spring.cloud.nacos.config.shared-dataids=provider-service.properties,test.properties
---- #刷新加载的其余环境
----spring.cloud.nacos.config.refreshable-dataids=provider-service.properties,test.properties
(3)简单介绍一下,使用nacos配置中心,客户端会定时心跳拉去配置,环境变量会动态刷新,可是在bean中须要使用 @RefreshCode注解去刷新,否则不生效。数据库配置能够自定义数据源。加载其余配置文件的话,须要使用refres-dataids去刷新环境。app
一样的,nacos实现注册中心也是至关的简单,nacos配置成功后,咱们只须要添加依赖,注解,配置注册中心地址便可。
(1)添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
(2)在启动类上添加 @EnableDiscoveryClient 注解
(3)配置注册中心地址
---- #配置服务名字
---- spring.application.name=xxx-service
---- #配置服务集群名字
---- spring.cloud.nacos.discovery.cluster-name=consumer-service
---- #配置注册中心地址
---- spring.cloud.nacos.discovery.server-addr=nacos.ailijie.top
完成,就是这样简单。ide
下面是我遇到的一些问题:
(1)使用版本管理,学习新项目咱们首先须要了解版本兼容特性,否则会出现不少问题。
(2)配置不生效,没有使用@RefreshCode注解刷新配置
(3)分清注册中心和配置中心是两个概念,须要配置两个地址
(4)学会看源码,看维基。微服务
未完待续,接下来会写服务发现feign和springdataflow相关话题。有问题请留言。