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

本心、输入输出、结果

文章目录

  • OpenNJet : 下一代云原生应用引擎
    • 前言
      • OpenNJet 技术架构
      • 安装 OpenNJet
      • 为什么有了 OpenNJet
      • OpenNJet 和 NGINX 是什么关系
      • 什么是云原生应用引擎?OpenNJet 的有哪些优势
        • OpenNJet 的有哪些优势
      • OpenNJet 与国产化
      • OpenNJet 使用教程
      • 相关资源

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


编辑 | 简简单单 Online zuozuo
地址 | https://blog.csdn.net/qq_15071263

个人简介 : 简简单单Online zuozuo,目前主要从事 Java 相关工作,商业方向为 B、G 端,主要使用Java、Python 进行日常开发,喜欢探索各个方面的内容,对很多的方向、内容感兴趣 :目前对 AIGC、云计算、物联网、医疗应用方向感兴趣


如果觉得本文对你有帮助,欢迎点赞、收藏、评论

前言

在这里插入图片描述

OpenNJet 应用引擎是高性能、轻量级的WEB应用与代理软件。作为云原生服务网格的数据平面,NJet具备动态配置加载、主动式健康检测、集群高可用、声明式API等多种强大功能。通过CoPliot副驾驶服务框架,在隔离控制面和数据面的情况下实现了高可扩展性。NJet应用引擎助力企业实现云原生技术的平滑升级并大幅降低IT运营成本。

1

OpenNJet 技术架构

在这里插入图片描述

2

安装 OpenNJet

操作系统环境

在这里插入图片描述

通过 Docker 容器启动 OpenNJet

docker run  -d --rm --cap-drop=ALL --cap-add=cap_dac_override --cap-add=cap_dac_read_search --cap-add=cap_setuid --cap-add=cap_net_bind_service --cap-add=cap_net_admin --cap-add=cap_net_raw --cap-add=cap_setgid --cap-add=cap_audit_write tmlake/njet:latest

运行完成如下图

在这里插入图片描述

进入容器

docker exec -it 570f8e0b19b2 /bin/bash

访问 OpenNJet 服务

curl http://127.0.0.1:8080/

在这里插入图片描述

查看 OpenNJet 的运行情况和配置文件

ps -ef
cat /usr/local/njet/conf/njet.conf

在这里插入图片描述

3

为什么有了 OpenNJet

据 Gartner 预测,到 2025 年,云原生架构将成为超过 95% 的新数字计划基础,高于 2021 年的不到 40%,云原生架构市场占有率不断提高。而如今,全球半数以上(55%) 的网站都基于 NGINX 运行,差不多相同比例 (53.7%) 的中国网站在 NGINX 开源版上运行。而 NGINX 存在难于动态配置、管理功能影响业务等问题,为了解决这些问题,OpenNJet 由此诞生

OpenNJet 基于 NGINX1.19 基础 fork 并独立演进,具有高性能、稳定、易扩展的特点,通过数据面与控制面的隔离,能够在不重启进程的情况下基于动态配置能力进行配置的实时更新。最近还推出了 OpenNJet K8s Ingress Controller 1.0,基于 OpenNJet 的动态特性、高性能实现,弥补了 NGINX 在云原生场景中不足,而且提供了丰富的流量管理功能,如动态 location、host/path 路由、负载均衡、动态 upstream、金丝雀发布、SNI 等。

4

OpenNJet 和 NGINX 是什么关系

OpenNJet 是一个基于 NGINX 开发的云原生应用引擎。它不仅扩展了 NGINX 的核心功能,比如增加了安全特性和代码重构的选项,还增加了对动态加载的支持,使得 NGINX 可以更灵活地运用在不同的服务器和中间件环境中。简单来说,是对 NGINX 的增强

OpenNJet应用引擎是面向互联网和云原生应用提供的运行时组态服务程序。具备环境感知、安全控制、加速优化等能力,可利用动态加载机制实现不同的产品形态,如API网关、消息代理、入口/出口控制器、边车、负载均衡和WAF等。提供了服务网格中东西向通信、透明流量劫持、熔断、遥测与故障注入、链路追踪、蓝绿发布等新功能特性。

目前,云原生应用引擎OpenNJet已经正式成为开放原子开源基金会的孵化期项目

5

什么是云原生应用引擎?OpenNJet 的有哪些优势

一、概念
原生应用引擎是一种可用于快速开发原生应用的软件开发工具。它将电脑程序的前端开发,后台管理开发以及前后端的联通性整合到一起,帮助开发者更轻松地开发原生应用。

二、特点

  1. 提供强大的技术支持。原生应用引擎有着丰富的技术支持,极大简化了原生应用的开发过程,可以帮助企业或开发者快速开发新功能。
  2. 优质的体验。通过原生应用引擎可以获得良好的体验,并实现轻量级的体验效果,让用户拥有更直观的原生应用体验。
  3. 低成本高回报的优势。由于原生应用引擎可以大幅缩短开发过程,相比手动开发,更可以节省不少的成本,同时也可以提高开发效率,从而极大提升项目回报率。
  4. 严格安全控制。原生应用引擎具有较为严格的安全控制,对用户隐私等重要信息进行加密,有效保护用户之间的数据传输安全性。

三、优势

  1. 快速构建应用。原生应用引擎可以快速构建应用,因为它可以使用JavaScript、HTML5等开发语言进行开发,大大缩短了应用的开发周期,帮助企业抢占市场机遇。
  2. 高效维护。通过原生应用引擎可以轻松的进行应用维护,因为引擎内部可以封装新功能,作为提升应用性能的一个强大机制,从而使得维护升级更加高效、便捷。
  3. 支持多端应用。原生应用引擎使用的是跨平台技术,可以让开发者在多个平台的应用中同步更新,从而实现多端应用的运行状态,更容易达到在各平台共享信息的目标。

四、缺点

  1. 对于原生应用引擎技术的要求较高。由于原生应用引擎构建的应用类型较复杂,既有传统应用的特点,又对流畅性有着极高的要求,因此,对开发者技术要求也比较高,容易产生技术的鸿沟。
  2. 功能限制。原生应用引擎只能支持某一种特定开发语言,而不能支持多种语言,所以会限制开发、运行过程中的一些日常功能,无法满足企业或开发者的需求变化。
OpenNJet 的有哪些优势

NJet应用引擎是高性能、轻量级的WEB应用与代理软件。作为云原生服务网格的数据平面,NJet具备动态配置加载、主动式健康检测、集群高可用、声明式API等多种强大功能。通过CoPilot副驾驶服务框架,在隔离控制面和数据面的情况下实现了高可扩展性。NJet应用引擎助力企业实现云原生技术的平滑升级并大幅降低IT运营成本

在这里插入图片描述

6

OpenNJet 与国产化

OpenNJet 加入 OpenCloudOS 社区,完成技术兼容互认

OpenNJet 正式加入 OpenCloudOS 操作系统开源社区,并完成了 OpenNJet v1.2.3 与 OpenCloudOS 的相互兼容认证,测试期间,整体运行稳定,在功能、性能及兼容性方面表现良好

在这里插入图片描述
经过以上多项测试表明,OpenNJet 在 OpenCloudOS 多个版本的系统下均能稳定运行,在提供标准负载均衡能力的基础上,添加了国密算法的支持,尤其是针对业内痛点,提供动态配置能力,解决了配置变更时服务实例需要重启或重加载导致的生产系统影响问题,实现了性能无损的配置变更。OpenNJet 是 OpenCloudOS 系统上,您部署负载均衡及应用网关服务的又一选择。

OpenNJet 产品负责人单雷表示:

希望能借助 OpenCloudOS,使广大的 web 使用者能快捷的体验到 OpenNJet 的优秀特性,愿同 OpenCloudOS 一道,完善自主可控的软件基础设施。

(OpenNJet软件)V1.0正式通过国家版权局严格审核,并获得计算机软件著作权登记证书。

在这里插入图片描述

7

OpenNJet 使用教程

常用命令

 njet -h //显示帮助信息
 njet -p /tmpr/njet/ -c conf/njet.conf //启动
 ​njet -t //测试配置信息是否有错误
 njet -v //显示版本
 njet -s stop 或者 kill -TERM {进程id} //快速停止
 njet -s reload 或者 kill -HUP {进程id}//重新加载配置

proxy_connect
Syntax: proxy_connect Default: none Context: server
启用“ CONNECTHTTP 方法支持。
proxy_connect_allow
Syntax: proxy_connect_allow all | [port ...] | [port-range ...] Default: 443 563 Context: server

此指令指定代理 CONNECT 方法可以连接到的端口号或范围的列表。 默认情况下,只启用默认的 https 端口(443)和默认的 snews 端口(563)。 使用此指令将覆盖此默认值,并仅允许连接到列出的端口。

当我第一次体验OpenNJet时,我被其在性能和灵活性方面的卓越表现所吸引。首先,OpenNJet基于NGINX引擎,利用了NGINX1.23.1版本的最新功能,为系统提供了出色的性能和稳定性。无论是处理大流量还是保障系统稳定运行,OpenNJet都表现出色。其次,OpenNJet提供了丰富的功能模块,包括API网关、消息代理、出入向代理、负载均衡、WAF等,这些模块可以根据需求进行动态加载,为系统提供了极大的灵活性和可定制性。例如,我可以根据业务需求轻松地添加API网关和负载均衡功能,而不需要重新配置整个系统。

8

相关资源

OpenNJet 官网

OpenNJet Gitee

感谢亲的点赞、收藏、评论,一键三连支持,谢谢

感谢亲的点赞、收藏、评论,一键三连支持,谢谢

感谢亲的点赞、收藏、评论,一键三连支持,谢谢

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【团体程序设计天梯赛】往年关键真题 L2-036 网红点打卡攻略 模拟 L2-037 包装机 栈和队列 详细分析完整AC代码

【团体程序设计天梯赛 往年关键真题 详细分析&完整AC代码】搞懂了赛场上拿下就稳 【团体程序设计天梯赛 往年关键真题 25分题合集 详细分析&完整AC代码】(L2-001 - L2-024)搞懂了赛场上拿下就稳了 【团体程序设计天梯赛 往年关键真题 25分题合…

初学React基础

最近准备跟着黑马React学一下React,扩充一下技术面,打算还是以一边学习一边记笔记为主,进行学习! 1. React介绍 1.1. React是什么? React是由FaceBook现在称(Meta)开发的开源 JavaScript 库&a…

SpringCloudStream 3.x rabbit 使用

1. 前言 今天带来的是SpringCloudStream 3.x 的新玩法,通过四大函数式接口的方式进行数据的发送和监听。本文将通过 rabbitMQ 的方式进行演示 3.x版本后是 可以看到 StreamListener 和 EnableBinding 都打上了Deprecated 注解。后续的版本更新中会逐渐替换成函数式…

如何批量修改文件的时间属性?修改创建时间,修改时间和访问时间

一,前言 在Excel中,修改文件的访问时间、创建时间和修改时间通常不是一个直接的功能。但是,我们可以通过一些间接的方法和工具来实现这一目标。请注意,直接修改这些时间戳可能会影响文件的完整性和安全性,因此在进行任…

Python 与 TensorFlow2 生成式 AI(四)

原文:zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者:飞龙 协议:CC BY-NC-SA 4.0 第九章:文本生成方法的崛起 在前几章中,我们讨论了不同的方法和技术来开发和训练生成模型。特别是在第六章“使用 …

WIN10 anaconda 安装 CondaError: Run ‘conda init‘ before ‘conda activate‘

1 下载 https://www.anaconda.com/download/success 2 安装 3 修改环境变量 安装后修改环境变量 4 winrun 进入命令窗口 输入cmd 输入 conda info 5 创建 虚拟环境 conda create -n yolov8 python3.8 -y 6 CondaError: Run ‘conda init’ before ‘conda activate’ c…

[Java、Android面试]_24_Compose为什么绘制要比XML快?(高频问答)

欢迎查看合集: Java、Android面试高频系列文章合集 本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于时间有限,每天整理一点&am…

GPT3 终极指南(二)

原文:zh.annas-archive.org/md5/6de8906c86a2711a5a84c839bec7e073 译者:飞龙 协议:CC BY-NC-SA 4.0 第五章:GPT-3 作为企业创新的下一步 当一个新的创新或技术转变发生时,大公司通常是最后一个采纳的。它们的等级结构…

将聊天记录与 LangChain 集成:为提升对话机器人体验提供了一种变革性的解决方案

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总…

PVDF-SiO₂复合纳米纤维膜

PVDF-SiO₂复合纳米纤维膜是一种结合了聚偏氟乙烯(PVDF)和二氧化硅(SiO₂)纳米粒子的新型复合材料。这种材料通常通过静电纺丝技术或其他纤维制备技术制备而成,具有许多良好的性能和广泛的应用前景。 PVDF是一种热塑性…

final、finally、finalize有什么区别?

引言 在Java编程语言中,final、finally和finalize是三个具有不同用途和语义的关键字或方法。它们在编程和面试中经常被提及,因此理解它们之间的区别是非常重要的。 题目 final、finally、 finalize有什么区别? 典型回答 final&#xff1…

ZooKeeper 搭建详细步骤之二(伪集群模式)

ZooKeeper 搭建详细步骤之三(真集群) ZooKeeper 搭建详细步骤之二(伪集群模式) ZooKeeper 搭建详细步骤之一(单机模式) ZooKeeper 及相关概念简介 伪集群搭建 ZooKeeper 伪集群是指在一个单一的物理或虚拟…

活动回顾 | 春起潮涌——硬件驱动的量化交易与AI

4月20日,华锐技术ACLUB联合AMD在上海举办了“春起潮涌——硬件驱动的量化交易与AI”沙龙活动,会议围绕FPGA硬件加速、CPU&网卡调优、AI技术应用等展开,近50位量化IT与分享嘉宾一起探讨硬件技术在量化交易和AI领域的应用和创新。 FPGA在交…

云服务器把端口添加到安全组后无法访问

直接 sudo iptables -I INPUT 5 -p tcp --dport 8085 -j ACCEPT 8085就是端口号 然后再运行服务器 就成功了

YOLOv5入门(二)处理自己数据集(标签统计、数据集划分、数据增强)

上一节中我们讲到如何使用Labelimg工具标注自己的数据集,链接:YOLOv5利用Labelimg标注自己数据集,完成1658张数据集的预处理,接下来将进一步处理这批数据,通常是先划分再做数据增强。 目录 一、统计txt文件各标签类型…

【C语言】——数据在内存中的存储

【C语言】——数据在内存中的存储 一、整数在内存中的存储1.1、整数的存储方式1.2、大小端字节序(1)大小端字节序的定义(2)判断大小端 1.3、整型练习 二、浮点数在内存中的存储2.1、引言2.2、浮点数的存储规则2.3、浮点数的存储过…

OI Wiki—递归 分治

//新生训练,搬运整理 递归 定义 递归(英语:Recursion),在数学和计算机科学中是指在函数的定义中使用函数自身的方法,在计算机科学中还额外指一种通过重复将问题分解为同类的子问题而解决问题的方法。 引入…

完美解决AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘

遇到这种错误通常是因为matplotlib的后端配置问题。在某些环境中,尤其是在某些特定的IDE或Jupyter Notebook环境中,可能会因为后端配置不正确而导致错误。错误信息提示 module backend_interagg has no attribute FigureCanvas 意味着当前matplotlib的后…

基于STC12C5A60S2系列1T 8051单片机的Proteus中的单片机发送一帧或一串数据给串口调试助手软件接收区显示出来的串口通信应用

基于STC12C5A60S2系列1T 8051单片机的Proteus中的单片机发送一帧或一串数据给串口调试助手软件接收区显示出来的串口通信应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机串口通信介绍STC12C5A60S2系列1T 8051单片机串口通信的结构基于STC12C5A60S2系列…

【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD)

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【MyBatis】 MyBatis框架下的高效数据操作:深入理解增删查改(CRUD) 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 My …