为什么选择OpenNJet?OpenNJet下一代云原生应用引擎!OpenNJet开发实战!

前言导读

在当今这个数字化转型加速的时代,云原生技术已成为企业和开发者构建现代应用的首选路径。OpenNJet作为新一代云原生应用引擎,在国内外技术社区受到了广泛关注。

本文将深入探讨OpenNJet的特点、优势以及在开发实践中的应用,带您全面了解为何它是下一代云原生应用开发的理想选择。

了解更多详情,请访问OpenNJet官网https://njet.org.cn/

一、OpenNJet下一代云原生应用引擎

OpenNJet应用引擎是基于NGINX打造的,针对互联网和云原生应用场景设计的运行时组态服务程序。它通过动态加载机制,能够灵活地扮演API网关、消息代理、入口/出口控制器等多种角色。OpenNJet以其环境感知、安全控制和加速优化的能力,满足了国内企业对于数据处理的技术规范和标准需求,同时与Kubernetes和Istio等主流云原生技术无缝集成,共同支撑我国云原生产业生态的发展。

1、技术创新与生态建设

在持续的技术迭代和创新发展背后,是OpenNJet强大的开源创新能力。作为开放原子开源基金会TOC评审通过的项目,并发布了1.0版本,OpenNJet在AtomGit上拥有了自己的代码仓库。未来,它将从推广应用、技术研发、确保安全、产业发展和开源共建五个方面继续深化工作。

2、功能丰富与架构先进

OpenNJet不仅具备传统NGINX的功能,还增加了诸如透明流量捕获、熔断、遥测与故障注入等云原生特性。作为数据平面,OpenNJet在提升南北向通信网关能力的同时,还加强了服务网格中东西向通信的功能,全面提升了云原生架构下的通信效率和安全性。

二、为什么选择OpenNJet?

性能无损动态配置

革新性的动态配置能力让OpenNJet解决了NGINX长期存在的痛点:即使在流量高峰期间也能实现实时配置更改,无需重启服务。这样的设计极大提高了服务的可用性和响应速度。

灵活的CoPilot框架

CoPilot框架的引入,使得OpenNJet的数据处理既高效又可靠,同时易于管理和监控。借助此框架,可以轻松实现指标输出、健康检查等管理操作,确保系统的稳定运行。

支持HTTP/3与国密算法

OpenNJet支持最新的HTTP/3协议,借助QUIC传输协议,实现更快、更可靠的Web体验。同时,对国密SM2、SM3、SM4算法的支持为用户提供了更强的数据保护,确保合规性。

高效安全的企业级应用

OpenNJet的设计考虑了企业对高可用、数据安全和自动化运维的需求。通过集群状态同步、集群配额控制以及运维文档的一体化设计,它简化了DevOps实践,并提升了数据安全和服务可用性。

控制面与数据面隔离

CoPilot框架将控制面与数据面进行了有效隔离。这使得OpenNJet在提供稳定、高性能的数据传输的同时,还能轻松扩展各种管理接口。

显著节能效果

选择OpenNJet还意味着您将参与到绿色技术的实践中来。据估计,到2025年,使用OpenNJet将节省的能耗高达1314亿元人民币,为企业及社会的可持续发展做出积极贡献。

三、OpenNJet开发实战!

1、OpenNJet技术架构分析

这张图是一个基于OpenNJet技术的架构图,总的来说,这个架构图描绘了一个高度模块化和分布式的系统,它通过进程隔离确保了控制层和数据层的安全性和独立性。

共享内存使得数据在这两层之间高效交换,而MQTT协议支持的Event Bus则确保了系统内部的通信效率。

该架构支持插件机制,使得第三方模块可以轻松接入和配置。OpenNJet作为基于NGINX的应用引擎,增强了云原生功能、安全性和灵活性,为各类互联网和云原生应用提供了强大的运行时支持。

控制管理层(Copilots)

copilot:xxx:代表特定的控制管理功能,它可以是一个特定的服务或功能模块。

copilot:broker:充当消息代理的角色,可能涉及消息队列的管理,例如MQTT协议。

**x.so:**动态链接的共享库(Dynamic Shared Object),用于copilot服务的扩展或功能实现。

共享内存(Shared Memory):控制管理层和数据处理层之间的数据交换通过共享内存实现,其中分为两部分,一部分是可读写的(供copilots和workers共同访问),另一部分是只读的(仅供copilots访问)。

发布/订阅(Publish/Subscribe):此机制表明系统内部可能使用了基于MQTT协议的Event Bus,实现消息的异步交换。

数据处理层(Workers)

worker1, worker2, ... worker n:这些都是负责处理数据的组件。它们可以并行工作,处理不同的任务。

module x:表示worker内部的模块,它们可能负责特定的功能,例如数据处理、安全加固等。

调用接口(invoke)/桩(stub):这可能表示workers之间或workers与其他系统组件之间的通信接口,stub可能是提供给外部模块调用的接口。

NJet master:这可能是系统的主控制单元,负责协调和管理整个架构的copilots和workers,可能包含监控、动态配置、负载均衡等多种功能。

Fork:在NJet master附近标注的fork可能表示该控制单元可以创建新的进程来生成更多的workers或copilots,这表明系统具有动态伸缩的能力。

2、安装OpenNJet

NJet官方提供centos,ubuntu,cloudOS等多个版本的2进制安装包,及软件源。

二进制安装包可以从gitee的主仓库选择对应的版本进行下载,或通过软件源的方式自动获得后续的 更新,目前支持centos及ubuntu的软件源配置。

除NJet主应用外,NJet的某些功能模块会通过独立的 二进制发行包进行可选安装,当前提供的有njet-otel模块,用于支持调用链跟踪,其安装参考<<njet- otel安装说明>>(todo)。

3、启动OpenNJet

3.1、手动启动

通过源码编译安装的,可执行文件及相关的配置文件将安装到目录/usr/local/njet

bash 复制代码
 cd /usr/local/njet
 sbin/njet

3.2、通过systemctl启动

bash 复制代码
使用 rpm 或 deb 二进制安装后,会在 /usr/lib/systemd/system/ 目录下添加 service文件。​

使用 sudo systemctl start njet 启动服务。​

使用 sudo systemctl stop njet 停止服务​

总结

OpenNJet作为下一代云原生应用引擎,不仅在技术层面为云原生应用的开发和运维提供了强大支持,而且在生态建设、安全合规以及节能减排方面都表现出色。

立即访问OpenNJet官网,开始您的云原生之旅吧!

相关推荐
小张认为的测试7 分钟前
Liunx上Jenkins 持续集成 Java + Maven + TestNG + Allure + Rest-Assured 接口自动化项目
java·ci/cd·jenkins·maven·接口·testng
m0_7482455213 分钟前
冯诺依曼架构和哈佛架构的主要区别?
微服务·云原生·架构
百流35 分钟前
scala文件编译相关理解
开发语言·学习·scala
Channing Lewis35 分钟前
flask常见问答题
后端·python·flask
蘑菇丁36 分钟前
ansible批量生产kerberos票据,并批量分发到所有其他主机脚本
java·ide·eclipse
Channing Lewis37 分钟前
如何保护 Flask API 的安全性?
后端·python·flask
呼啦啦啦啦啦啦啦啦2 小时前
【Redis】持久化机制
java·redis·mybatis
Evand J2 小时前
matlab绘图——彩色螺旋图
开发语言·matlab·信息可视化
我想学LINUX3 小时前
【2024年华为OD机试】 (A卷,100分)- 微服务的集成测试(JavaScript&Java & Python&C/C++)
java·c语言·javascript·python·华为od·微服务·集成测试