Nacos 的配置
1. Nacos的安装
-
windows版本在官网下载:https://github.com/alibaba/nacos
下载运行bin目录下的startup.cmd 打开显示
密码账号默认:nacos
2. 服务的注册
springcloud 文档:https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html
首先父引入pom
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.1.BUILD-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
子模块:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
yml:
server:
port: 8004
spring:
application:
name: cloud-provider-payment
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
management:
endpoints:
web:
exposure:
include: '*'
启动以后的结果:
同时创建module8005 : 运行
负载均衡功能的验证
创建订单模块:创建简单rest工具类
/**
* @time 2020/7/11 17:58
* @Author gp
* 通信工具类
*/
@Component
public class RestTemplateConfig {
@Bean
@LoadBalanced
//@LoadBalanced 开启负载均衡
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
调用服务提供者的地址:
/**
* 注冊eureka以後 需要使用注冊 的服务名称
*/
String url="http://cloud-provider-payment/";
@Autowired
RestTemplate restTemplate;
@GetMapping("/test")
public String test(){
String forObject = restTemplate.getForObject(url+"echo/aaa", String.class);
return forObject;
}
由于nacos 依赖自带了ribbon,netflix 不需要自己引入,由于使用了ribbon需要创建rest风格的接口对cloud-provider-payment下的接口进行调用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
以上实现了 注册中心和负载均衡的功能:
3.配置中心
pom:
<!--引入config 依赖-->
<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>
yml:创建bootstrap.yml
spring地址:https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html
server:
port: 3377
spring:
application:
name: cloud-nacos-client
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #作为注册中心
config:
server-addr: 127.0.0.1:8848 #作为配置中心
#文件格式yml
file-extension: yaml
#配置中心命名规则 名称一定要yaml 不能省略为yml
#${prefix}-${spring.profile.active}.${file-extension}
# cloud-nacos-client-dev.yaml
测试接口:
@Value("${config.info}")
private String configInfo;
@RequestMapping("/config/info")
public String getConfigInfo(){
return configInfo;
}
}
新增配置:
调用接口结果
这样就实现简单配置中心的实现。
- 后面内容逐渐补充
4.DataId添加配置 (可查看官网)
可以指定spring.profile.active
和配置文件的dataId来加载不同环境,在进行config配置时 我们进行了名称的配置 通过不同的名称获取不同的配置,可以通过修改 配置环境 来实现各个环境的加载。
5.group 分组
通过不同的分组切换不同的 配置环境,group: DEFAULT_GROUP
6.命名空间
namespace: xxxxxxxx
和dataId group 可以理解为三层文件夹 暂时理解是 区分不同的配置文件,方便管理
7.nacos 配置的持久化
nacos 使用内嵌的数据库,支持将内嵌数据库数据改为mysql数据库,需要在conf 下的配置文件修改添加信息
// 使用mysql数据库
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
以后配置信息就会持久到mysql数据库 ,在添加之前需要创建mysql的库表,文件在conf 下的nacos-mysql.sql