您现在的位置是:首页 > 文章详情

利用 OpenNJet HA Copilot 实现高可用部署 (二)

日期:2023-12-01点击:73

NGINX 向云原生演进,All in OpenNJet 


配置同步

上一篇文章介绍了OpenNJet如何实现高可用配置,这一篇文章介绍下高可用模式下实现集群配置同步的功能。OpenNJet有很多动态配置的模块,这些动态的配置可以利用我们HA模块实现在主备节点之间进行同步。

主节点通过动态配置接口(声明式api或者命令式api)动态更新配置,然后backup节点能够及时同步这些配置。主节点宕机,backup节点动态更新配置,再主节点重新起来后,也能够及时同步更新的配置。最终保证主备节点都能够保证彼此配置的最新同步。

测试

 配置说明

下面的测试场景,均以一台主节点,一台backup节点进行测试

主节点: 192.168.40.136

broker进程配置如下

 C++ #配置主节点监听端口和ip listener 1883 192.168.40.136 #配置本地socket地址,用于本地worker进程通信 listener 0 /root/bug/njet1.0/data/mosquitto.sock log_dest file logs/mosquitto.log log_type debug log_type information log_type error log_type warning log_type notice allow_anonymous true persistence true autosave_on_changes true autosave_interval 1 persistence_location /root/bug/njet1.0/data/ 

 backup节点:192.168.40.91

broker进程配置如下:

 C++ #配置backup节点监听端口和ip listener 1883 192.168.40.91 #配置本地socket地址,用于本地worker进程通信 listener 0 /root/bug/njet1.0/data/mosquitto.sock #配置需要连接的主节点地址信息 connection bridge-backup address 192.168.40.136:1883 #topic主题过滤掉get相关接口请求 topic /dyn/# both 0 topic /ins/# both 0 log_dest file logs/mosquitto.log log_type debug log_type information log_type error log_type warning log_type notice allow_anonymous true persistence true autosave_on_changes true autosave_interval 1 persistence_location /root/bug/njet1.0/data/ 

命令式API 消息同步

主节点更新消息,backup节点同步消息

往主节点新增一个location /clb,观察backup节点是否同步新增

往主节点通过动态location接口add一个location

通过其他模块get接口查询,可发现主节点刚才的location已经存在

backup节点查看,发现也存在该location,同步成功

 backup节点更新消息,主节点同步消息

backup节点新增一个location /clb2,观察主节点是否同步新增

backup节点通过动态location接口add一个location

通过其他模块get接口查询,可发现backup节点刚才的location已经存在

从主节点查看,发现也存在该location,同步成功

声明式API消息同步

主节点更新消息,backup节点同步消息

 

通过修改location /clb limit conn个数进行验证

主节点修改前:conn数量为100

修改主节点该值为200

观察backup节点的值,发现已经为200,同步成功

backup节点更新消息,主节点同步消息

通过修改location /clb limit conn个数进行验证

backup点修改为300

观察主机点,也为300,同步成功

主节点退出, backup节点配置reload后不会消失

stop掉主节点,观察backup节点配置

观察backup节点,仍然是300

backup节点的值修改为400,然后将backup节点reload,重新get发现值还为400

主节点重新加入,会同步backup节点消息

start主节点,观察主节点配置是否会同步backup节点的动态配置

重新启动主节点、

观察主节点的值,已经为400,说明同步成功

已知问题

      在有命令式api 比如location动态删除的消息时,会同步失败

OpenNJet 最早是基于 NGINX1.19 基础 fork 并独立演进,具有高性能、稳定、易扩展的特点,同时也解决了 NGINX 长期存在的难于动态配置、管理功能影响业务等问题。 邮件组 官网

原文链接:https://my.oschina.net/u/6606114/blog/10315642
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章