SpringCloud(11)
Nacos服务注册和配置中心
nacos安装
在官网下载压缩包https://nacos.io/zh-cn/docs/quick-start.html
然后执行对应的命令。
启动完成后,访问localhost:8848/nacos
即可访问该界面。账号密码都是nacos
服务注册中心
生产者:
POM:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21<dependencies>
<!-- alibabanacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>top.zfxt.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>1.9.0</version>
</dependency>
</dependencies>YML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16server:
port: 9001
spring:
application:
name: nacos-provider
cloud:
nacos:
discovery:
server-addr: localhost:8848
management:
endpoints:
web:
exposure:
include: "*"主启动类:
1
2
3
4
5
6
7
8
9
open class NacosPayment9001 {
}
fun main(args: Array<String>) {
runApplication<NacosPayment9001>(*args)
}复制微服务:
消费者:
YML:
1 | server: |
然后他需要配置restTemplate,在业务类中也可以使用到yml中配置的servcie-url
业务类:
1 |
|
CP+AP的选择和使用
服务配置中心
- 基础配置信息
POM:YML:1
2
3
4
5
6
7
8
9
10<!--nacos-config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--nacos-discovery-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
bootstrap.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14# nacos配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos作为服务注册中心
config:
server-addr: localhost:8848 #Nacos作为服务配置中心
file-extension: yaml # 指定需要yaml格式的配置application.yml
1 | spring: |
主启动类:
1 |
|
业务类:
1 |
|
匹配规则:
然后在nacos服务中添加一个配置项
这里说明一个错误
详见(https://zfxt.top/index.php/archives/411/)
在这里使用时,很明显,RefreshScoping他会动态生成。也就是会额外的创建,因此我们需要给与他open也就是允许被修改的权限,同时,我们需要保证他的安全性,在这里private是无法使用的,private和open不能同时使用。他们定义相冲突。因此我选择使用了protected
在使用NACOS的话,你修改了配置,他可以自动更新并加载。也就是代替了原本的POST更新请求和bus总线
Nacos的分类管理
- DataID方案
就是修改spring.profiles.active 常用的有dev,test等 - Group方案
在Nacos的图形化界面为配置文件添加Group,然后在bootstrap.yml下的config下添加一个group属性即可 - NameSpace方案
在Nacos中建立新的命名空间。他会生成一些对应的namespaceID。
然后再bootstrap.yml中可以添加如下:
Nacos集群和持久化配置
https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
持久化配置
将内嵌式数据库替换成mysql高可用数据源。保证数据的一致性
从derby到mysql的切换:
启动的集群的cluster配置方式不能是127.0.0.1,linux无法识别
shell命令,添加新端口启动方式
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小贺同学的blog!
评论