目录
1.官方集群结构
请求进入以后,经过SLB负载均衡器分发到不同的nacos结点。
详细设计:3个nacos结点通过MySQL集群实现数据共享,nginx实现反向代理和负载均衡
3个nacos结点还是使用不同的端口模拟
2.搭建集群
2.1搭建数据库
Nacos 默认数据存储在内嵌数据库 Derby 中,不属于生产可用的数据库。官方推荐的最佳实践是使用带有主从的高可用数据库集群,主从模式的高可用数据库。这里我们以单点的数据库为例。
首先新建一个数据库,命名为 nacos,而后导入下面的 SQL(在nacos安装目录 -> conf -> nacos-mysql.sql可找到)
2.2下载安装nacos
微服务5 Nacos注册中心_捣蛋孩学编程的博客-CSDN博客
2.3配置nacos
1.进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf
2.在文件末尾修改结点信息(端口占用要修改,我就是8846被占用,所以改成8849)
127.0.0.1:8845
127.0.0.1:8849
127.0.0.1:8847
3. 修改 application.properties 文件,添加数据库配置
spring.datasource.platform=mysql #数据源
db.num=1 #数据源数量
#数据库信息
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=
2.4启动
1.将nacos文件夹复制三份,模拟三台机器
2.分别修改三个application.properties文件的端口
nacos1:
server.port=8845
nacos2:
server.port=8849
nacos3:
server.port=8847
3.运行bin目录下的startup.cmd文件
或者在bin目录下执行启动命令:
startup.cmd
2.5nginx反向代理和负载均衡
1.下载安装
官网下载地址:http://nginx.org/en/download.html
解压即安装
2.修改配置
修改 nginx 文件夹下的 conf/nginx.conf 文件的http属性内添加
upstream nacos-cluster {
server 127.0.0.1:8845;
server 127.0.0.1:8849;
server 127.0.0.1:8847;
}server {
listen 80;
server_name localhost;location /nacos {
proxy_pass http://nacos-cluster;
}
}
3.启动
在安装目录执行启动命令
start nginx.exe
404报错!!!
如果访问出现404,而检查配置无误,将监听端口80改为其他空闲的(如8888)测试,结束后再改回80测试,用什么端口无所谓,能跑就行
在访问的配置文件中配置:
spring: application: name: user-server # 服务名称 cloud: nacos: server-addr: localhost:80/nacos #nacos服务地址
注意!!! 此处的nacos服务地址由添加在nginx.conf 文件的http属性的三部分组成,直接写localhost:80会连接失败
在nacos控制台创建配置
发布失败可能是版本问题,创建数据库时要用自己nacos目录conf里面的nacos-mysql.sql文件,
测试访问:http://localhost:8081/user/prop
可热更新,共享配置
其他用法参照:微服务5 Nacos注册中心_捣蛋孩学编程的博客-CSDN博客Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。https://blog.csdn.net/m0_62520968/article/details/127151912?spm=1001.2014.3001.5501微服务6 nacos配置管理_捣蛋孩学编程的博客-CSDN博客在user-server中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml。从结果看出,两个实例都读取了共享配置user-server.yaml的envSharedValue属性和各自所属的环境配置。:项目的核心配置,需要热更新的配置才有放到 nacos 管理的必要。当微服务实例越来越多,配置就更繁杂,我们需要一个统一配置管理方案,可以集中管理所有实例的配置。extension-configs: # 多微服务间共享的配置列表。https://blog.csdn.net/m0_62520968/article/details/127163446?spm=1001.2014.3001.5501