Nacos 单机以及集群搭建
前言#
Nacos是阿里云开源服务,下面两句话是Nacos官方解释什么是Nacos。
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
环境准备#
工作目录 /app
3台机器需安装配置 64 bit JDK 1.8+ --> 下载地址
Nacos 截至目前最新版本为1.0.0 --> 下载地址 下载后解压到/app
单机模式#
单机启动以A虚拟机做示例
1:启动#
单机启动不需要什么配置,只需要JDK1.8+支持,数据库由内置数据库进行存储,也可以使用MySQL数据库。默认启动端口为8848,如果需要修改端口,修改conf/application.properties 中的server.port项。
1 | sh startup.sh -m standalone |
2:访问#
浏览器访问192.168.2.10:8848/nacos/
默认账户和密码为 nacos
集群模式#
一:集群环境#
1:JDK1.8+
2:3个或3个以上Nacos节点才能构成集群。
3:MySQL数据库,目前只支持MySQL,集群不能使用内置数据库。
4:拓扑图
二:配置#
1:将conf下cluster.conf.example复制一份为cluster.conf
1 | [root@node1 conf]# cp cluster.conf.example cluster.conf |
2:将三个节点添加到集群配置文件cluster.conf。
1 2 3 4 5 6 | [root@node1 conf]# cat cluster.conf #it is ip #example 192.168.2.10:8848 192.168.2.11:8848 192.168.2.12:8848 |
3:将下面数据库配置添加到conf/application.properties。
1 2 3 4 5 | db.num=1 db.url.0=jdbc:mysql: //192.168.2.12:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.database=nacos_config db.user=root db.password=password |
4:将上面3个步骤分别在A,B,C机器上重复执行。
5:数据库配置。(虚拟机C)
安装好MySQL数据库后,创建一个nacos库。然后导入nacos初始化sql,sql在 /app/nacos/conf/nacos-mysql.sql
创建用户并授权nacos库给创建用户,本实例已root用户为例。
6:启动A,B,C 三个节点的Nacos。
1 2 | [root@node1 ~]# cd /app/nacos/ [root@node1 nacos]# /app/nacos/bin/startup.sh |
启动日志放在 /app/nacos/logs/start.out,查看是否启动成功。
7:访问
Nginx+Keepalived配置#
1:nginx下载并解压到/app,并添加配置。(A,B虚拟机都配置。)
1 2 3 4 5 6 7 8 9 10 | upstream nacos-server{ server 192.168.2.10:8848; server 192.168.2.11:8848; server 192.168.2.12:8848; } location /nacos/ { proxy_pass http: //nacos-server/nacos/; } |
2:安装keepalived,并作相应配置。(A:主,B:备)VIP:192.168.2.111
keepalived配置:A(主)
[root@node1 conf]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { admin@test.com } notification_email_from admin@test.com smtp_server smtp.qq.com smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script Monitor_Nginx { script "/home/scripts/monitor_nginx.sh" interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface ens192 virtual_router_id 50 mcast_src_ip 192.168.2.10 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { Monitor_Nginx } virtual_ipaddress { 192.168.2.111 } }
keepalived配置:B(备)
[root@node2 nacos]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { admin@test.com } notification_email_from admin@test.com smtp_server smtp.qq.com smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script Monitor_Nginx { script "/home/scripts/monitor_nginx.sh" interval 2 weight 2 } vrrp_instance VI_2 { state BACKUP interface ens192 virtual_router_id 50 mcast_src_ip 192.168.2.11 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { Monitor_Nginx } virtual_ipaddress { 192.168.2.111 } }
3:启动nginx和keepalived(A,B)
1 2 | [root@node1 conf]# /app/nginx/sbin/nginx [root@node1 conf]# systemctl start keepalived |
4:通过VIP访问Nacos
作者:鲜小橙
出处:https://www.cnblogs.com/big-cousin/p/10871269.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!