Nacos 高可用环境搭建(基于Docker)
2022/1/28 6:04:57
本文主要是介绍Nacos 高可用环境搭建(基于Docker),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Nacos 高可用环境搭建
Nacos 高可用环境 = Nacos 集群 + Nacos 持久化
参考:<( ̄︶ ̄)↗Nacos官网 - 集群部署说明
@
目录- Nacos 高可用环境搭建
- 1、创建 Docker 局域网
- 2、创建并启动1个 Nginx 容器,将容器加入局域网
- 3、创建并启动1个 MySQL 容器,将容器加入局域网
- 4、创建并启动3个 Nacos 容器,将容器加入局域网
- 5、验证上述容器能否相互 ping 通
- 6、配置 Nacos 持久化、集群
- 7、验证 Nacos 持久化是否生效
- 8、配置 Nginx 对 Nacos 的负载均衡
- 9、验证 Nginx 负载均衡是否生效
1、创建 Docker 局域网
-
创建 Docker 局域网
PS C:\Users\xiao> docker network create MyNetwork 56b64b706d69bf2d3b30eb6d63c94bb110c74e16febf96c1b1b0aa687cc3d493
-
罗列所有局域网
PS C:\Users\xiao> docker network ls NETWORK ID NAME DRIVER SCOPE 56b64b706d69 MyNetwork bridge local e19f31ab243a bridge bridge local 09b9f7e52530 host host local 3bb55566e6c5 none null local
-
查看局域网详情
PS C:\Users\xiao> docker network inspect MyNetwork [ { "Name": "MyNetwork", "Id": "56b64b706d69bf2d3b30eb6d63c94bb110c74e16febf96c1b1b0aa687cc3d493", "Created": "2022-01-27T11:58:16.195894307Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": {}, "Options": {}, "Labels": {} } ]
2、创建并启动1个 Nginx 容器,将容器加入局域网
-
创建并启动 Nginx 容器
<( ̄︶ ̄)↗Nginx 实战 - 安装.md
-
将 Nginx 容器加入局域网
PS C:\Users\xiao> docker network connect MyNetwork MyNginx
-
检查 Nginx 容器是否成功加入局域网
PS C:\Users\xiao> docker network inspect MyNetwork [ { "Name": "MyNetwork", "Id": "56b64b706d69bf2d3b30eb6d63c94bb110c74e16febf96c1b1b0aa687cc3d493", "Created": "2022-01-27T11:58:16.195894307Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "9ba1cfa5e902ba3f4cfebb6404d03f8c4cbe1aa418fc4ae682722c5882c88811": { "Name": "MyNginx", "EndpointID": "22e350022928c6e597a0bc217b84270525ab8400bb84d04387d63632f0b028eb", "MacAddress": "02:42:ac:12:00:02", "IPv4Address": "172.18.0.2/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ]
3、创建并启动1个 MySQL 容器,将容器加入局域网
-
创建并启动 MySQL 容器
<( ̄︶ ̄)↗MySQL 实战 - 安装.md
-
将 MySQL 容器加入局域网
PS C:\Users\xiao> docker network connect MyNetwork MyMySQL
-
检查 MySQL 容器是否成功加入局域网
PS C:\Users\xiao> docker network inspect MyNetwork [ { "Name": "MyNetwork", "Id": "56b64b706d69bf2d3b30eb6d63c94bb110c74e16febf96c1b1b0aa687cc3d493", "Created": "2022-01-27T11:58:16.195894307Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "9ba1cfa5e902ba3f4cfebb6404d03f8c4cbe1aa418fc4ae682722c5882c88811": { "Name": "MyNginx", "EndpointID": "22e350022928c6e597a0bc217b84270525ab8400bb84d04387d63632f0b028eb", "MacAddress": "02:42:ac:12:00:02", "IPv4Address": "172.18.0.2/16", "IPv6Address": "" }, "45a4bca256c29842067cb324c67f3288c24b545a61cb796f4df1bfc5b1fcaae6": { "Name": "MyMySQL", "EndpointID": "f80a9fbd1f849a58f18b45d4d7684295e6d8e593c0b308af7215846692e2e57d", "MacAddress": "02:42:ac:12:00:03", "IPv4Address": "172.18.0.3/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ]
4、创建并启动3个 Nacos 容器,将容器加入局域网
-
创建并启动 Nacos 容器(集群模式)
<( ̄︶ ̄)↗Nacos 实战 - 安装与使用.md
docker run -itd -p 8848:8848 --env MODE=cluster --name MyNacos1 nacos/nacos-server docker run -itd -p 8849:8848 --env MODE=cluster --name MyNacos2 nacos/nacos-server docker run -itd -p 8850:8848 --env MODE=cluster --name MyNacos3 nacos/nacos-server
-
将 Nacos 容器加入局域网
docker network connect MyNetwork MyNacos1 docker network connect MyNetwork MyNacos2 docker network connect MyNetwork MyNacos3
-
检查 Nacos 容器是否成功加入局域网
PS C:\Users\xiao> docker network inspect MyNetwork [ { "Name": "MyNetwork", "Id": "56b64b706d69bf2d3b30eb6d63c94bb110c74e16febf96c1b1b0aa687cc3d493", "Created": "2022-01-27T11:58:16.195894307Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "9ba1cfa5e902ba3f4cfebb6404d03f8c4cbe1aa418fc4ae682722c5882c88811": { "Name": "MyNginx", "EndpointID": "22e350022928c6e597a0bc217b84270525ab8400bb84d04387d63632f0b028eb", "MacAddress": "02:42:ac:12:00:02", "IPv4Address": "172.18.0.2/16", "IPv6Address": "" }, "45a4bca256c29842067cb324c67f3288c24b545a61cb796f4df1bfc5b1fcaae6": { "Name": "MyMySQL", "EndpointID": "f80a9fbd1f849a58f18b45d4d7684295e6d8e593c0b308af7215846692e2e57d", "MacAddress": "02:42:ac:12:00:03", "IPv4Address": "172.18.0.3/16", "IPv6Address": "" }, "b2268309c7e072f7212fc10efc773636676243d40067e8f4511324786701aed7": { "Name": "MyNacos1", "EndpointID": "2d0c0db59c5918bac6955bdc24682576d0b8301ea67097110d5a4f6a8557966e", "MacAddress": "02:42:ac:12:00:04", "IPv4Address": "172.18.0.4/16", "IPv6Address": "" }, "a07e465b71cd19c54caa26aeb58aad9714d03945d029648ec65e61affc3b1796": { "Name": "MyNacos2", "EndpointID": "0a5a371b04e2eb4087836a817785edaf86a356b1ad100f164328d6481a17b190", "MacAddress": "02:42:ac:12:00:05", "IPv4Address": "172.18.0.5/16", "IPv6Address": "" }, "d29eceb1c4b5d6071a8e11d75dce038f27eae5e8800cafc7cbeb97429c3d5d95": { "Name": "MyNacos3", "EndpointID": "79cb067cd0d3c267fc51614fc794c31d8922e334132a3ae3efaabf4dd3bb7e60", "MacAddress": "02:42:ac:12:00:06", "IPv4Address": "172.18.0.6/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ]
5、验证上述容器能否相互 ping 通
注意:ping: command not found
解决:apt-get update + apt-get iputils-ping
6、配置 Nacos 持久化、集群
<( ̄︶ ̄)↗Nacos实战 - 持久化.md
-
从 Nacos 官网获取 Nacos 数据库构建脚本,MySQL 执行脚本搭建 Nacos 数据库
-
进入 Nacos 实例,修改 /conf/application.properties 文件,配置 Nacos 持久化
-
修改 /conf/cluster.conf 配置文件,配置 Nacos 集群
7、验证 Nacos 持久化是否生效
-
重启所有 Nacos 实例
-
打开任意一个 Nacos 实例的控制面板,创建若干配置信息
-
检查配置信息是否存入数据库
-
打开其他 Nacos 实例的控制面板,检查是否获取到相同的配置信息
8、配置 Nginx 对 Nacos 的负载均衡
<( ̄︶ ̄)↗Nginx 实战 - 负载均衡.md
进入 Nginx 容器,配置自定义配置文件 /etc/nginx/conf.d/nacosLoadBalance.conf
upstream serverInstance { # ip_hash; server 172.18.0.4:8848 weight=1; server 172.18.0.5:8848 weight=1; server 172.18.0.6:8848 weight=1; } server { listen 80; server_name 127.0.0.1; location ~ /nacos/ { proxy_pass http://serverInstance; proxy_connect_timeout 10; } }
9、验证 Nginx 负载均衡是否生效
-
修改 Nginx 配置文件,改变日志格式
log_format main '$remote_addr --"$request"--> $http_host--> $upstream_addr [$status $request_time]';
-
重启 Nginx
-
通过 Nginx 访问 Nacos 控制面板
-
刷新若干次后查看日志文件
172.18.0.1 --"GET /nacos/ HTTP/1.1"--> 127.0.0.1--> 172.18.0.4:8848 [200 0.012] 172.18.0.1 --"GET /nacos/ HTTP/1.1"--> 127.0.0.1--> 172.18.0.5:8848 [304 0.010] 172.18.0.1 --"GET /nacos/ HTTP/1.1"--> 127.0.0.1--> 172.18.0.6:8848 [304 0.009] 172.18.0.1 --"GET /nacos/ HTTP/1.1"--> 127.0.0.1--> 172.18.0.4:8848 [200 0.010] 172.18.0.1 --"GET /nacos/ HTTP/1.1"--> 127.0.0.1--> 172.18.0.5:8848 [200 0.010] 172.18.0.1 --"GET /nacos/ HTTP/1.1"--> 127.0.0.1--> 172.18.0.6:8848 [304 0.010]
这篇关于Nacos 高可用环境搭建(基于Docker)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Docker部署资料:新手入门教程
- 2024-12-19Docker部署实战:新手入门教程
- 2024-12-19Docker部署教程:新手入门详解
- 2024-12-09云原生周刊:在Docker上部署大语言模型
- 2024-12-05Docker教程:新手快速入门指南
- 2024-12-05Docker项目实战:新手教程与案例解析
- 2024-12-04Docker入门教程:快速掌握基础操作
- 2024-12-04Docker入门教程:轻松搭建你的第一个容器化应用
- 2024-12-04Docker-Compose 入门教程:全面解析基础命令与应用场景
- 2024-12-04Docker入门:新手必读的简单教程