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

news2024/10/8 22:50:38

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 update
 sudo apt-get install ca-certificates curl gnupg
 sudo install -m 0755 -d /etc/apt/keyrings
 curl -fsSL https://njet.org.cn/download/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/njet.gpg
 sudo chmod a+r /etc/apt/keyrings/njet.gpg

添加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/null
 sudo apt-get update

添加apt源

注意
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/njet
 sbin/njet
 
 -- 停止
 pkill njet

4. 验证

可以通过浏览器或curl/wget访问部署机器的8080地址进行验证
浏览器验证

curl http localhost:8080/

curl访问验证

总结

OpenNJet 应用引擎凭借其对 NGINX 的深度定制化改造与云原生功能扩展,成功构建了一个强大而全面的云原生服务运行环境。它不仅涵盖了传统Web服务与现代微服务架构的多样化需求,更通过引入先进的服务网格特性和运维工具,显著提升了云原生应用的稳定、安全与可管理性,为用户在快速变化的互联网和云环境中提供了坚实的技术支撑。

最后,OpenNJet这么强大,你是不是也想了解和上手实操了!别急,这就上链接:

官网链接:https://njet.org.cn/
github链接:https://github.com/OpenNJet/OpenNJet

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1646262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设置定位坐标+请按任意键继续

设置定位坐标 目的 在编程和游戏开发中,设置定位坐标的目的是为了确定对象在屏幕或游戏世界中的具体位置。坐标通常由一对数值表示,例如 (x, y),其中 x 表示水平位置,y 表示垂直位置。设置定位坐标的目的包括: 1. **精…

【JavaScript】数据类型转换

JavaScript 中的数据类型转换主要包括两种:隐式类型转换(Implicit Type Conversion)和显式类型转换(Explicit Type Conversion)。 1. 隐式类型转换(自动转换): js 是动态语言&…

CNN笔记详解

CNN(卷积神经网络) 计算机视觉,当你们听到这一概念的是否好奇计算机到底是怎样知道这个图片是什么的呢?为此提出了卷积神经网络,通过卷积神经网络,计算机就可以识别出图片中的特征,从而识别出图片中的物体。看到这里充…

XYCTF2024 RE ez unity 复现

dll依然有加壳 但是这次global-metadata.dat也加密了,原工具没办法用了,不过依然是可以修复的 a. 法一:frida-il2cpp-bridge 可以用frida-il2cpp-bridge GitHub - vfsfitvnm/frida-il2cpp-bridge: A Frida module to dump, trace or hijac…

深度剖析muduo网络库1.1---面试提问(阻塞、非阻塞、同步、异步)

在面试过程中,如果被问到关于IO的阻塞、非阻塞、同步、异步时,我们应该如何回答呢? 结合最近学习的课程,我作出了以下的总结,希望能与大家共同探讨! 先给出 陈硕大神原话:在处理IO的时候&…

存储故障后oracle报—ORA-01122/ORA-01207故障处理---惜分飞

客户存储异常,通过硬件恢复解决存储故障之后,oracle数据库无法正常启动(存储cache丢失),尝试recover数据库报ORA-00283 ORA-01122 ORA-01110 ORA-01207错误 以前处理过比较类似的存储故障case:又一起存储故障导致ORA-00333 ORA-00312恢复存储故障,强制拉库报ORA-600 kcbzib_kcr…

计算机毕设

随着社会和国家的重视,大学对于大学生毕业设计越来越重视。 做软件设计设计方面,前后端分离是必不可少的,代码管理工具,前后端接口测试是项目中必须要用到的工具。做大数据设计方面,主要是要用到爬虫进行数据爬取&…

(二)JSP教程——taglib指令

创建标签文件 首先创建一个Web项目,在webapp/WEB-INF目录下创建一个tags文件夹 在tags文件夹中创建一个oddNumberSum.tag文件,Tag文件时扩展名为.tag的文本文件,其结构和JSP文件非常相似,该文件的目录结构如图所示 创建Tag文件的…

Altium Designer——检查原理图库正确性并生成报告

一、方法: 1.打开原理图库: 2.点击菜单栏的报告选项: 3.选择器件规则检查: 根据需求勾选,一般都是全部勾选: 二、问题: 1.缺少封装会导致什么问题: 1.首先: 封装是…

方法的入栈和出栈

一.作用域问题 1.全局作用域 在全局都能进行访问的变量 var a 10;function fn() {var b 20;return a b;}console.log(fn()); 2.局部的作用域 只能在限定的范围内进行访问 function fn() {var b 20;}console.log(b); b is not defined 打印的结果是b这个变量没用定义 3…

9.Admin后台系统

9. Admin后台系统 Admin后台系统也称为网站后台管理系统, 主要对网站的信息进行管理, 如文字, 图片, 影音和其他日常使用的文件的发布, 更新, 删除等操作, 也包括功能信息的统计和管理, 如用户信息, 订单信息和访客信息等. 简单来说, 它是对网站数据库和文件进行快速操作和管…

Xinlinx FPGA如何降低Block RAM的功耗

FPGA中降低Block RAM的功耗有两种方式,分别是选择合适的写操作模式以及Block RAM的实现算法及综合设置。我们知道对于采用IP核生成对应的RAM时,会有最小面积算法、低功耗算法以及固定原语,但是采用最小功耗算法有时由于级联长度导致无法实现&…

Listview控件的5种视图

在C#中,ListView控件是用于显示和编辑列表数据的常用控件。它可以显示数据项的列表,并允许用户对列表中的数据进行操作。 ListView控件有五种视图模式,分别是: LargeIcon视图:在此视图中,每个数据项都显示…

详解xml-java语言

1.XML在线学习手册 XML 教程 2.XML可以做什么 1.给两个程序之间进行数据通信。现在用的最多的是JSON。 2.给服务器做配置文件。 3.存储复杂的数据关系。 4.还可以充当小型的数据库。 3.书写格式 <?xml version"1.0" encoding"UTF-8" ?> <…

ctfshow web入门 sql注入 web224--web233

web224 扫描后台&#xff0c;发现robots.txt&#xff0c;访问发现/pwdreset.php &#xff0c;再访问可以重置密码 &#xff0c;登录之后发现上传文件 检查发现没有限制诶 上传txt,png,zip发现文件错误了 后面知道群里有个文件能上传 <? _$GET[1]_?>就是0x3c3f3d60245…

#9松桑前端后花园周刊-React19beta、TS5.5beta、Node22.1.0、const滥用、jsDelivr、douyin-vue

行业动态 Mozilla 提供 Firefox 的 ARM64 Linux二进制文件 此前一直由发行版开发者或其他第三方提供&#xff0c;目前Mozilla提供了nightly版本&#xff0c;正式版仍需要全面测试后再推出。 发布 React 19 Beta 此测试版用于为 React 19 做准备的库。React团队概述React 19…

仅为娱乐,Python中如何重定义True为False?

在Python中&#xff0c;True 和 False 是内建的布尔常量&#xff0c;分别代表逻辑上的真和假。它们是不可变的&#xff0c;且在Python语言规范中具有特殊地位&#xff0c;不能被用户直接重定义。尝试给 True 或 False 赋予新的值是违反Python语言规则的&#xff0c;这样的操作会…

ESG视角下的多期DID构建(2009-2022年)4.5万+数据

随着ESG信息越来越受到重视&#xff0c;一些第三方评级机构开始推出ESG评级产品&#xff0c;目前在第三方数据库能够查到华证、富时罗素、商道融绿、社会价值投资联盟以及Wind自有的ESG评级数据等。其中&#xff0c;商道融绿是中国最早发布ESG评级数据的机构&#xff0c;也是国…

六淳科技IPO终止背后:十分着急上市,大额分红,实控人买豪宅

华西证券被暂停保荐业务资格6个月的影响力逐渐显现。 近日&#xff0c;深圳证券交易所披露的信息显示&#xff0c;东莞六淳智能科技股份有限公司&#xff08;下称“六淳科技”&#xff09;及其保荐人撤回上市申请材料。因此&#xff0c;深圳证券交易所决定终止对其首次公开发行…

esp32+mqtt协议+paltformio+vscode+微信小程序+温湿度检测

花费两天时间完成了这个项目&#xff08;不完全是&#xff0c;属于是在resnet模型训练和温湿度检测两头跑......模型跑不出来&#xff0c;又是第一次从头到尾独立玩硬件&#xff0c;属于是焦头烂额了......&#xff0c;完成这个项目后&#xff0c;我的第一反应是写个csdn&#…