OpenNJet:下一代云原生应用引擎
- 前言
- 一、技术架构
- 二、新增特性
- 1. 透明流量劫持
- 2. 熔断机制
- 3. 遥测与故障注入
- 三、Ubuntu 发行版安装 OpentNJet
- 1. 添加gpg 文件
- 2. 添加APT 源
- 3. 安装及启动
- 4. 验证
- 总结
前言
OpenNJet,是一款基于强大的 NGINX 技术栈构建的创新型云原生运行时组态服务程序,旨在为互联网与云原生应用场景提供高效、灵活且安全的服务支持。通过对 NGINX 的云原生功能深度强化、安全加固以及代码重构,实现了对基础架构的全面升级,从而能够通过动态加载机制轻松适配多种业务场景,以满足不同产品的形态需求。
一、技术架构
好的产品都是从好的设计开始的,优秀的技术架构才能承载多样化的业务场景、拥有极高的性能、更易扩展和管理等独特优势。
从而,OpenNJet 能够有效管理和调控微服务之间的内部通信,确保服务间调用的高效、可靠与透明。
二、新增特性
1. 透明流量劫持
OpenNJet 具备对服务间流量的透明拦截与操控能力,能够在不改变服务本身的情况下,对数据包进行检测、修改或者重定向,便于实施统一的安全策略、监控措施或进行A/B测试等高级操作。
2. 熔断机制
为了保护系统免受局部故障的连锁反应影响,OpenNJet 集成了服务熔断功能。当某个服务的错误率超过预设阈值时,引擎能够自动切断对该服务的请求,防止故障扩散,并提供降级处理或备用服务切换,确保整体系统的稳定性和用户体验。
3. 遥测与故障注入
OpenNJet 实现了全面的遥测能力,能够实时收集并上报服务间的调用指标、性能数据以及异常事件,为运维人员提供详尽的可观测性视图。此外,它还支持故障注入测试,允许在生产环境中模拟特定故障场景,以验证系统的容错能力和恢复策略,助力持续改进服务的韧性和可靠性。
三、Ubuntu 发行版安装 OpentNJet
1. 添加gpg 文件
sudo apt-get updatesudo apt-get install ca-certificates curl gnupgsudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://njet.org.cn/download/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/njet.gpgsudo chmod a+r /etc/apt/keyrings/njet.gpg
2. 添加APT 源
echo \
"deb [arch=$(dpkg --print-architecture) signed-
by=/etc/apt/keyrings/njet.gpg] https://njet.org.cn/download/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/njet.list > /dev/nullsudo apt-get update
注意
:
E:Malformed entry 1 in list file /etc/apt/sources.list.d/njet.list ([option] not assignment)
报错解释:这个错误表明在/etc/apt/sources.list.d/njet.list文件中,列表中的第一个条目格式不正确。
解决方法
:
1)打开文件进行编辑 sudo vim /etc/apt/sources.list.d/njet.list
2)检查并修正第一个条目的格式。正确的条目通常以deb或deb-src开头,后面跟着相应的仓库地址、发行版名称、版本号和构架。
修改为:deb [arch=amd64 signed-by=/etc/apt/keyrings/njet.gpg]
https://njet.org.cn/download/linux/ubuntu focal stable
3)保存文件并退出编辑器。
4)运行sudo apt-get update来更新软件包列表。
3. 安装及启动
-- 安装
sudo apt-get install njet-- 启动
sudo systemctl start njet
启动的时候报错:System has not been booted with systemd as init system (PID 1). Can't operate.
报错原因:我这个系统里没有使用systemctl、service来管理njet服务,很好理解。
解决方法:手工启停
可执行文件及相关的配置文件安装到目录 /usr/local/njet 下
-- 启动cd /usr/local/njetsbin/njet-- 停止pkill njet
4. 验证
可以通过浏览器或curl/wget访问部署机器的8080地址进行验证
curl http localhost:8080/
总结
OpenNJet 应用引擎凭借其对 NGINX 的深度定制化改造与云原生功能扩展,成功构建了一个强大而全面的云原生服务运行环境。它不仅涵盖了传统Web服务与现代微服务架构的多样化需求,更通过引入先进的服务网格特性和运维工具,显著提升了云原生应用的稳定、安全与可管理性,为用户在快速变化的互联网和云环境中提供了坚实的技术支撑。
最后,OpenNJet这么强大,你是不是也想了解和上手实操了!别急,这就上链接:
官网链接:https://njet.org.cn/
github链接:https://github.com/OpenNJet/OpenNJet