生产环境都是要保证高可用, 所以需要搭建Nacos集群, 来保证不会由于只有一个注册中心情况下挂了, 整个微服都出现问题, 由于Nacos默认使用的是内置嵌入式数据库derby, 如果搭建集群会出现数据一致性问题, 每个Nacos中数据库数据都不同。
所以需要使用自定义MySQL数据库, 目前也仅支持MySQL。 (前面笔记1-注册中心中配置过自定义数据库进行持久化配置)
从官网上的集群部署架构图上看, 推荐模式是域名 + VIP模式,可读性好,而且换ip方便;
类似nginx模式, 请求发送到nginx 由nginx转发到具体的nacos。
需要3个Nacos + MySQL, 参考官网的docker的集群方式。
我这里3个nacos都是在同一个机子上面, 正常的环境是部署在不同的服务器, 通过外网连接的。
Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定, 所以我需要自己创建一个网络组才能自定义指定IP。
docker network create -d bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 自定义名称我这里使用的是同一个机子, 所以使用到了指定网络组--network zhihao、与--ip 172.17.0.5 指定了容器IP, 正式环境部署机子在不同地方是不需要的, 并且由于我nacos三个服务使用了自定义网络组, 无法通过MySQL容器IP去访问了, 换一种通过bridge网络的网关IP172.17.0.1或者直接公网IP去访问部署在bridge网络的数据库。
-e MODE=cluster表示是集群模式启动。
-e NACOS_SERVERS="172.17.0.5:8848 172.17.0.6:8848 172.17.0.7:8848" 指定集群机子的IP与端口, 正式部署不同机子的情况下是外网, 例如: 119.xxxx:8848 119.xxxx:8848 119.xxxx:8848 只是IP不同。
全部启动完成后, 进行访问机子1的地址 http://公网IP:8848/nacos。
然后点菜单的集群管理, 看到如下界面说明配置成功。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pw0dwOyF-1603175522564)(https://s1.ax1x.com/2020/10/19/0xDEGR.jpg)]
进行注册测试, 重现突然其中一个注册中心节点挂了的情况下, 微服是否还能正常调用。
然后在菜单服务管理中可以看到, 并且访问其他节点的nacos中的服务管理也可以看到注册上去的服务
[[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pjkvT92h-1603175522565)(https://s1.ax1x.com/2020/10/19/0x6iOx.jpg)]
这个时候服务之间是可以正常调用的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uG55TUOO-1603175522568)(https://s1.ax1x.com/2020/10/19/0xcYb6.jpg)]
这个时候, 8848管理界面已经无法访问。
继续进行服务之间的正常调用, 发现是没有受到影响, 服务之间是可以继续进行调用的。
到此我们就配置完成官网说的 直连ip模式,机器挂则需要修改ip才可以使用 如果配置错误或者想换IP什么的, 需要删除容器重新创建。
也就是官网说的挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好
与 penAPI 域名 + VIP模式,可读性好,而且换ip方便,推荐模式
我这里早在之前就已经配置好目录挂载的nginx
#upstream的负载均衡 (公网方式) upstream myNacosServices { server 119.xx.xx.xxx:8848; server 119.xx.xx.xxx:8848; server 119.xx.xx.xxx:8848; } server { # 监听端口 listen 8868 default_server; #域名可以有多个,用空格隔开 (PS: 域名 + VIP模式需要自己购买域名, 这里使用挂载VIP模式) server_name localhost; # / 拦截访问/** 后面所有请求转发 location / { #proxy_pass 指定负载均衡名称 proxy_pass http://myNacosServices/; } }配置完毕, 重启nginx容器, (PS我nginx也是部署在docker上面),所以需要开放容器访问端口 : 8868
然后通过nginx去访问nacos管理界面: http://119.xx.xxx.xxx:8868/nacos 能访问到说明配置欧克。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nqTzHTxi-1603175522569)(https://s1.ax1x.com/2020/10/20/BSWawR.jpg)]
启动注册服务上去, 然后进行查看服务管理是否存在, 并重复一套流程测试, 没有问题说明一切正常,
到此就配置完成。
1