一,nacos介绍
1, 什么是nacos?
Nacos(na代表Naming,co代表Configuration,s为Service)是阿里巴巴一个开源的注册中心、配置中心组件
2、nacos的启动器
<!--nacos注册中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
二、nacos的安装和启动
1、上传并解压
打开nacos虚拟机
cd /usr/upload
rz nacos包
tar -zxvf nacos-server-1.4.1.tar.gz -C /usr/local
2、启动和关闭
cd /usr/local/nacos/bin
./startup.sh -m standalone
3、测试
浏览器访问:http://192.168.23.130:8848/nacos
默认用户名/密码为:nacos/nacos
三、nacos注册中心(服务的ip和端口)
1、服务提供者:nacos_provider
1, pom.xml文件
spring-boot-starter-web
spring-cloud-starter-alibaba-nacos-discovery
springcloud_common
2, application.yml 配置文件
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.23.130:8848 #nacos的IP地址和端口
application:
name: nacos-provider #服务名
3, 启动类 添加注解 允许注册服务和发现服务
@EnableDiscoveryClient
2,服务消费者 nacos_cosumer
1,pom.xml
spring-boot-starter-web
spring-cloud-starter-alibaba-nacos-discovery
springcloud_common
2,application.yml
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.23.130:8848
application:
name: nacos-consumer #向注册中心注册的名字
3, 启动类
@EnableDiscoveryClient
3、测试
@RestController
@RequestMapping(value = "/consumer")
public class ConsumerController {
@Autowired
private RestTemplate restTemplate;
@Autowired
private DiscoveryClient discoveryClient;
@RequestMapping(value="/getUserById/{id}")
public User getUserById(@PathVariable Integer id){
//获取nacos中注册的所有服务信息
List<String> serviceList = discoveryClient.getServices();
for (String service : serviceList) {
System.out.println(service);
}
//获取nacos中注册的指定服务信息
ServiceInstance instance = discoveryClient.getInstances("nacos-provider").get(0);
String serviceUrl = instance.getHost() + ":" + instance.getPort();
String url = "http://"+serviceUrl+"/provider/getUserById/"+id;
return restTemplate.getForObject(url, User.class);
}
}
四、配置中心(配置文件)
1,集中管理配置文件
1、pom.xml
spring-boot-starter-web
spring-cloud-starter-alibaba-nacos-discovery
spring-cloud-starter-alibaba-nacos-config
2、bootstrap.yml
spring:
cloud:
nacos:
config: #(系统级别的配置)
server-addr: 192.168.23.130:8848 #配置中心的地址
prefix: nacos-config #默认值是spring.application.name
file-extension: yaml #默认值是properties
3、启动类
@SpringBootApplication
@EnableDiscoveryClient
2、在nacos中新建配置文件

Data Id:${spring.cloud.nacos.config.prefix}.${spring.cloud.nacos.config.file-extension}
配置格式: .yaml结尾
3、测试nacos集中管理配置文件 实时更新配置
package com.bjpowernode.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RefreshScope //重新从BeanFactory获取一个新的实例(该实例使用新的配置)
public class ConfigController {
@Value("${spring.datasource.driver-class-name}")
private String driverClassName;
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Value("${spring.datasource.type}")
private String type;
@GetMapping("/config/info")
public String getConfigInfo() {
System.out.println(this);
String configInfo = driverClassName+"<br>"+url+"<br>"+username+"<br>"
+password+"<br>"+type;
return configInfo;
}
}
4.测试实时更新配置信息
注意:需要引入logback.xml 查看完整信息
原理:nacos监听MD5 每次更新,MD5 都不一样
5.配置隔离
namespace ---------------- 环境:dev、test、prod
group ---------------- 项目名:springcloud_parent
Data Id ---------------- 配置文件/工程名:nacos-config.yaml
五、持久化
1、为什么要持久化?
nacos有自带嵌入式数据库derby,如果搭建集群则每台nacos的配置文件都不一样,请求的时候可能会找不到配置文件
2、持久化
1,切换数据库
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.23.131:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1111
2,建库建表
1.新建nacos数据库
2.初始化数据库 关闭nacos 再打开
3.找到/usr/local/nacos/conf/nacos-mysql.sql并在Navicat执行

3)测试
1.重启nacos
2.上传配置文件,观察是否写到了mysql

本文介绍了Nacos作为注册中心和配置中心的详细使用方法,包括Nacos的介绍、安装启动、服务注册与发现、配置中心的使用、配置文件的实时更新及持久化存储。重点讲解了如何通过切换数据库实现配置持久化,并提供了测试步骤。

1万+

被折叠的 条评论
为什么被折叠?



