Nacos尝试配置SpringCloud
新来了一个项目,有并发要求,选择了springcloud这套,至于eureka已经闭源了,就没有考虑,最后选择了阿里的nacos ,服务发现和配置中心都集中在注册中心,配置支持动态加载,中文文档丰富,社区活跃
首先下载安装nacos,我这里直接用docker了,下载压缩包太慢
docker run --name my-nacos --env MODE=standalone -d -p 8848:8848 nacos/nacos-server
github地址 点我跳转
输入默认的用户名密码nacos/nacos,进入控制台
http://localhost:8488/nacos
8848钛金手机你值得拥有。
我这里用命名空间的方式去分离profile,直接创建三个namespace,这样在配置列表和服务列表都会有命名空间上的区分(听起来像rabbit的vhost?)
配置文件以yaml properties等结尾配合file-extension食用效果更佳
上面的配置为主要配置,配置数据源等主要信息,配置文件要改名为bootstrap.yml,不要使用之前那种配置,所有的配置均在配置中心配置,其他配置也可以通过extension-configs引入其他配置
server:
port: 8001
spring:
application:
name: app
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
#每次切换环境需要修改为对应的命名空间
namespace: c9333388-4b9c-42f8-aaa1-35x03216d3da
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}
prefix: ${spring.application.name}
file-extension: yaml
namespace: ${spring.cloud.nacos.discovery.namespace}
注册好的服务在服务列表可见,多个相同服务默认轮训负载
在服务详情中可以配置服务权重,-1时不可被负载
最后附上pom依赖,不要配置错座标了,弄错会找不到
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<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>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
</dependencyManagement>