SpringCloud-Nacos注册中心和配置中心
一、Nacos的介绍
1、什么是nacos?
Nacos(na代表naming,co代表configuration,s代表service)是阿里巴巴一个开源的注册中心、配置中心组件
2、nacos的启动器
spring-cloud-starter-alibaba-nacos-discovery
spring-cloud-starter-alibaba-nacos-config
二、nacos的安装和启动
1、上传并解压
cd /usr/upload
tar -zxvf nacos-server-1.4.1.tar.gz -C /usr/local
2、启动和关闭
启动:
cd /usr/local/nacos/bin
./startup.sh -m standalone
关闭:
cd /usr/local/nacos/bin
./shutdown.sh
测试:
浏览器:http://192.168.42.132:8848/nacos
默认账号密码:nacos
三、nacos的注册中心(ip和port)
1、服务提供者
1)pom.xml
spring-cloud-starter-alibaba-nacos-discovery

2)application.yml
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.42.132:8848 #nacos的地址
application:
name: nacos-provider #map的key

3)app
@EnableDiscoveryClient

2、服务消费者
1)pom.xml
spring-cloud-starter-alibaba-nacos-discovery
2)application.yml
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.42.132:8848 #nacos的地址
application:
name: nacos-consumer #map的key
3)app
@EnableDiscoveryClient
三、nacos的配置中心(配置文件)
1、集中管理配置文件
1)pom.xml
spring-boot-starter-web
spring-cloud-starter-alibaba-nacos-discovery
spring-cloud-starter-alibaba-nacos-config
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<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>
2)bootstrap.yml
spring:
cloud:
nacos:
config:
server-addr: 192.168.42.132:8848 #nacos的地址
prefix: nacos-config #默认值是${spring.application.name}
file-extension: yaml #默认值是properties
3)在nacos中新建配置文件
Data Id:${spring.cloud.nacos.config.prefix}.${spring.cloud.nacos.config.file-extension}
配置格式: yaml
配置内容:在idea中写好粘贴过去



4)测试
观察项目启动后的端口、是否注册成功
2、实时更新配置文件
@RestController
@RefreshScope //当nacos发送更新通知时,spring会从工厂重新获得当前类的对象 de9b
public class ConfigController {
@Value("${msg}")
private String msg;
@RequestMapping("/getConfigInfo")
public String getConfigInfo(){
System.out.println(this);
return msg;
}
}
原理:监控MD5
3、配置隔离
namespace ------------------- 环境名:dev、test、prod
group ------------------- 项目名:springcloud_parent、jd_parent
Data Id ------------------- 配置文件名/工程名:nacos-config.yaml
4、namespace隔离
①新建namespace

②克隆配置文件

③读取配置文件

5、group隔离
①新建配置文件

②读取配置文件

6、服务隔离
修改配置文件

测试

四、nacos的持久化
1、为什么要持久化?
nacos有自带的嵌入式数据库derby,如果搭建集群则每台nacos存储的配置文件不一样
2、持久化
1)切换数据库
vim /usr/local/nacos/conf/application.properties:
### 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.42.130:3306/nacos?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1111
2)建库建表
找到/usr/local/nacos/conf/nacos-mysql.sql,并在Navicat中执行
3)测试
①重启nacos
②上传配置文件,观察是否写到了mysql
五、nacos集群
1、问题
1)如何把请求平均分配给3台nacos?
nginx
2)nacos的集群搭建
①配置3台nacos的通讯地址
cd /usr/local/nacos/conf
cp cluster.conf.example cluster.conf
vim cluster.conf:
# ip:port
192.168.42.132:8850
192.168.42.132:8851
192.168.42.132:8852
②复制3台nacos
cd /usr/local
mkdir nacos-cluster
cp -r nacos nacos-cluster/nacos-8850
cp -r nacos nacos-cluster/nacos-8851
cp -r nacos nacos-cluster/nacos-8852
③修改3台nacos的端口号
vim /usr/local/nacos-cluster/nacos-8850/conf/application.properties
server.port=8850
vim /usr/local/nacos-cluster/nacos-8851/conf/application.properties
server.port=8851
vim /usr/local/nacos-cluster/nacos-8852/conf/application.properties
server.port=8852
④启动集群
cd /usr/local/nacos-cluster/nacos-8850/bin
./startup.sh
cd /usr/local/nacos-cluster/nacos-8851/bin
./startup.sh
cd /usr/local/nacos-cluster/nacos-8852/bin
./startup.sh
3)搭建nginx
①安装c语言环境及nginx的依赖库
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
②下载nginx
cd /usr/upload
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
③解压
cd /usr/upload
tar -zxvf nginx-1.12.0.tar.gz
④配置安装路径
cd nginx-1.12.0
./configure --prefix=/usr/local/nginx
⑤编译并安装
make && make install
⑥配置nginx代理nacos
vim /usr/local/nginx/conf/nginx.conf:
upstream nacos {
server 192.168.42.132:8850;
server 192.168.42.132:8851;
server 192.168.42.132:8852;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://nacos;
}
}
⑦nginx的启动和关闭
启动:
cd /usr/local/nginx/sbin
./nginx
关闭:
cd /usr/local/nginx/sbin
./nginx -s stop
更多推荐


所有评论(0)