利用 OpenNJet HA Copilot 实现高可用部署 (二)
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 长期存在的难于动态配置、管理功能影响业务等问题。 邮件组 官网

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Kyuubi 发起人燕青成为 Apache Incubator PMC 成员
网易杭州研究院、网易数帆大数据专家燕青再添新头衔,这一次,是 Apache Incubator PMC成员。 近日,Apache Incubator PMC(Apache 软件基金会孵化器项目管理委员会,简称 IPMC)宣布,接纳燕青(Kent Yao)为 Apache Incubator PMC 成员,参与对是否接纳项目进入 Apache 基金会孵化的表决。 Apache 软件基金会是全球顶尖的开源基金会,是超过 350 个开源项目和计划的全志愿开发者、管理者和孵化者。此次燕青通过投票成为 Apache Incubator PMC 成员,这意味着顶级社区对这位网易开源先锋的认可,也证明了网易杭研、网易数帆团队推进开源实践的成果和贯彻开源战略的决心。 在此之前,燕青在开源社区的角色,是 Apache Kyuubi PMC 主席 & VP、Apache Spark 和 Apache Submarine 两个项目 Committer,并曾因其在 Spark 社区的杰出贡献被评为国内唯一的 Databricks 灯塔。 燕青主要开源节点: 2020年11月,成为 Apache Sub...
- 下一篇
AREX 在开发自测场景中应用实践
前言 AREX是一款重新定义自动化测试的回归测试平台。它基于 Java Agent 的代码注入能力,实现流量录制回放技术,捕获线上真实用户流量和数据,在开发测试等验证环境回放,比对差异,明确代码变更影响面,实现全自动化回归测试。 AREX 运行模式与使用场景 AREX 运行的两种模式 AREX 除了可以为测试人员提供回归测试的便利,还可以助力开发人员在新功能开发后进行本地自测,快速发现代码问题并立即修复,有效缩短开发周期,提高开发效率。 Standalone 模式: 针对于开发人员,下载 Arex-Cli 并在本地运行,可在提测前使用此模式进行接口业务代码变更后的快速自测。 AREX 完整运行模式: 针对于测试人员,在测试环境安装完整的 AREX 服务, 并在开发环境下载 AREX Agent JAR 包,被测试应用配置 Agent 并运行。 常见使用场景 1. Debug 和定位验证 根据指定的 AREX 测试用例,将 AREX 回放地址指向本地,即在本地运行回放测试,用于开发人员对特殊场景进行调试和验证。 同时,这种方法也可以用于解决生产环境中的问题,便于开发人员定位验证问题并快速...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Hadoop3单机部署,实现最简伪集群
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS关闭SELinux安全模块