Nacos作为注册中心和配置中心
Cloud依赖:
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope>
</dependency>
1:注册中心:
(1):导入Maven依赖包:服务注册依赖
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
首先Nacos需要先创建一个组和一个命名空间。不填写命名空间的话会自动生成一个
这里的1010班级命名空间改成dev402与下面图对应:
根据命名空间和组在项目中的服务可以找到这个自己所在的地方:完成服务注册,完成服务注册暂时没有用到group分组,分组是与下面的服务配置有关
spring:cloud:nacos:# 【注册中心】相关配置discovery:# 命名空间(大分组)默认为:publicnamespace: dev402# 分组名称,默认为【DEFAULT_GROUP】group: xuecheng-plus-project# 注册中心地址server-addr: localhost:8848
Nacos作为配置中心:
Maven依赖:跟上面注册中心的几乎一样只有最后一个单词不同;
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
在环境下新增配置:在上述通过namespace、group找到具体的环境和具体的项目后,会通过dataid找到具体的配置文件,这个dataid一共由三部分组成:
例:content-service-dev.yaml配置文件 由(content-service)-(dev). (yaml)三部分组成:
-
content-service:第一部分,它是在application.yaml中配置的应用名,即spring.application.name的值。
-
dev:第二部分,它是环境名,通过spring.profiles.active指定,
-
Yaml: 第三部分,它是配置文件 的后缀,目前nacos支持properties、yaml等格式类
本地配置文件中:
spring:application:name: content-servicecloud:nacos:server-addr: 192.168.101.65:8848discovery:namespace: devgroup: xuecheng-plus-projectconfig:namespace: devgroup: xuecheng-plus-projectfile-extension: yamlrefresh-enabled: true#profiles默认为devprofiles:active: dev
然后比如数据库连接这种配置就可以写在nacos中:
如果某一个微服务引用了其余微服务的配置,需要在配置文件中引入:根据dataid寻找配置
extension-configs:- data-id: content-service-${spring.profiles.active}.yamlgroup: xuecheng-plus-projectrefresh: true
公共配置:swagger+logging
在yml中引用:
总结:
1:通过环境名字找到服务;