一、使用 Nacos 实现配置中心
根据 https://nacos.io/zh-cn/docs/quick-start.html 提示下载最新 release 包,进行解压,并进入 bin 目录下运行
sh startup.sh -m standalone
即可在 linux 服务器快速搭建 nacos 服务,可以在命令后追加&在后台运行
nacos 默认端口 8848
启动完成之后,访问:http://IP:8848/nacos/,可以进入 Nacos 的管理页面;
我下载的是最新的 0.9.0 版本的,需要使用默认用户名和密码 nacos 进行登录
至此,nacos 服务已经搭建完成
新建 spring boot 应用,在 pom 文件引入下面依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
必须使用 bootstrap.properties 进行相关配置
spring.application.name=alibaba-nacos-discovery-server
nacos server 地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
在 nacos 配置管理页面新增配置
可以直接使用默认配置,只需要按照提示进行操作即可
新建 dataid 为 ${spring.application.name}.properties 的配置项,加入内容为 key=value 格式的数据,在服务端即可获取配置内容
如果不想使用默认配置 可以如下进行修改
默认动态刷新,将配置进行推送可以通过设置 spring.cloud.nacos.config.refresh.enabled=false 来关闭动态刷新
另外还支持
- 可支持 profile 粒度的配置
- 支持自定义 namespace 的配置
二、使用 Nacos 实现服务注册与发现
接下来可以新建服务将其注册到 nacos
新建 spring boot 应用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
配置文件加入相关配置
在启动类加入注解
@SpringBootApplication
@EnableDiscoveryClient
启动类启动,即可将当前服务成功注册到 nacos,详细信息如下
如上图所示
用过阿里云 EDAS 产品的对这个界面会比较熟悉,和 edas 注册中心比较像,可以看出了 Spring Cloud Alibaba 是阿里云产品在良好实践中进行总结和精炼演化而来。
三、使用 Nacos 实现服务消费与负载均衡
仅对 RestTemplate 举例说明
使用如下方法添加 LoadBalanced 注解以实现客户端负载均衡
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
由 RestTemplate 调用注册到 nacos 的服务
nacos 宣称其支持 Dubbo/gRPC service、Spring Cloud RESTFul serviceor Kubernetes service
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于