OpenNJet,够轻更强云原生应用引擎

前言:

         在正式介绍OpenNJet之前,我们先来看看它的技术架构,如下图所示,OpenNJet正是NGINX的Pro版,在100%兼容NGINX基础上,新增了动态配置加载、主动式健康检测、集群高可用、声明式API等多种强大功能。

        NGINX作为我们熟悉的老大哥,以其高效的异步事件驱动模型而闻名,在高流量场景下能够保持出色的性能,而不会像传统的同步服务器那样因为每个连接都占用一个线程而导致资源耗尽。今天给大家介绍的OpenNJet继承了

        NGINX的高性能、并拥有功能多、强安全、可扩展、可编程、易管理等独特优势。那接下来跟着我一起从0-1揭开OpenNJet的神秘面纱吧。

一、初识OpenNJet

  1、颜值:高矮胖瘦?

        前面我们了解到OpenNJet拥有很多独特的优势,为了实现这些复杂的功能,OpenNJet应该比较重。因此在我的潜意识中OpenNJet应该是一款"重量级的嘉宾",然而OpenNJet的RPM安装包,只有仅仅的6M左右,真是一个字绝,因此OpenNJet给我的第一印象是够轻

2、初体验:3分钟上手

        在被OpenNJet够轻震撼的同时,我开始了我的体验之旅。OpenNJet的整个安装过程也非常简单,本次以Centos7的操作系统为例,来详细阐述整个安装过程。

  2.1安装前准备

        NJet官方提供centos,ubuntu,cloudOS等多个版本的2进制安装包,及软件源。如果你也是选择RPM的安装方式,我们需要先检查自己的Centos的版本,是不是Centos7的。

检查linux版本命令。

cat /etc/os-release

2.2安装启动

          在检查完我们系统版本后,我们需要检查自己的账号是不是root账号,有没有连接外网等,如果我们不是root账号,我们需要在安装命令前面加上sudo来提权安装,服务器没有连接外网的情况下,我们可以点击下面链接先下载到本地再上传至linux系统安装盘中。

  https://gitee.com/njet-rd/njet/releases/download/v2.0.1/njet-2.0.1-1.el7.x86_64.rpm

  在线安装命令

下载njet2.1.0版本

sudo wget https://gitee.com/njet-rd/njet/releases/download/v2.1.0/njet-2.1.0-1.el7.x86\_64.rpm

#通过yum进行本地安装 sudo yum localinstall ./njet-2.1.0-1.el7.x86\_64.rpm

#启动njet sudo systemctl start njet

图2.2.1下载安装包效果图

图2.2.2yum本地安装效果图

图2.2.3成功启动效果图

Tips:整个过程只需三句命令,如果我们顺利的话,整个过程大概在三分钟左右可以完成。需要注意的是如果我们在下载安装包过程中遇到网络异常,被异常中断后,再次下载会默认将安装包重命名。如下图所示,此时我们需要将旧的安装包进行删除,再重命名我们新下载的安装包,继续后续的操作。

        如上图所示,再次下载安装rpm安装包被重命名为...rpm.1,这里需特别注意下。

二、OpenNJet实战表现

  1、动态配置体验

        我们通过简单的三步命令完成了OpenNJet的安装和启动,这是我们可以通过{ip}:8081/doc/swagger/,进入OpenNJet的swagger 页面。在swagger 页面中可以对各功能api的访问,比如健康检查、动态access log 配置、动态VTS配置、动态 location 配置、动态 upstream api 配置等。

        通过简单的web界面,就可以动态了解各api的GET/POST请求,轻松实现各种云原生api接口的配置接口访问,不愧是下一代云原生应用引擎,够强。

2、 GUI 参数动态配置

        我们知道在NIGINX中参数都是静态配置,这导致每次修改一个小参数都必须重启服务才能生效,这对于云原生应用来说是非常的不友好。如下图所示我们通过{ip}:8081/doc/gui/,进入OpenNJet参数动态配置界面,通过点击加号新增log模块,点击保存两步就完成http_log模块的设置。

3、应用代理

        企业出于数据安全等方面的考虑,很多应用都是在内网运行,但有时我们又需要与外部的一些应用集成,如企业微信、钉钉、飞书等。但我们又不能直接开放外网,此时我们就需要一款优秀的代理软件来完成与外部应用的通信。下面我们来看看OpenNJet是怎么快速实现我们的BI应用与企业微信代理通信。

        在代理服务器上配置 OpenNJet代理。修改配置文件conf/njet.conf,在http{}之间添加如下代码:

server {listen 8113;  // 代理服务器端口server_name frbi.cngrgf.com.cn;  //代理服务器IP或者域名access log logs/fr/access.log; //记录运行日志error log logs/fr/error.log;//记录错误日志location / {proxy_pass http://10.110.13.109:80;//应用服务器内网地址proxy set header Host frbi.cngrgf.com.cn;//外网访问域名}}

        如找到njet.conf文件,添加代理信息,保持后进行功能测试。

        在没有代理前,我们只能通过内网ip的方式来访问BI应用服务器。

        通过OpenNJet代理后,我们就可以通过外网域名的方式来访问我们的BI应用了,这样我们就可以通过OpenNJet代理与企业微信进行通信。

        通过OpenNJet代理后,BI系统就可以及时将企业发生的异常信息推送至企业微信群,大大降低了异常风险,提高了异常关闭的及时率和成本。

        为了让大家更直观的感受,我们将推送的企业微信消息在浏览器端打开,我们可以看到,通过 OpenNJet代理转发后,将我们的异常信息推送到了企业微信中。

三、总结

        总的来说,OpenNJet是一款轻量化的云原生应用引擎,强大而不笨重,易上手、不熬人。因其OPEN的api接口加上动态应用配置,更能满足企业对应用软件7*24小时高可用、高性能的运行需求。

        当然OpenNJet还有很多应用场景等待挖掘,如果你也对OpenNJet感兴趣,不妨点击下方链接试用。欢迎在下方留言讨论,一起探索OpenNJet更多神奇的应用。

https://njet.org.cn/

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙DevEco Studio 4.1 Release-模拟器启动方式错误

软件版本:DevEco Studio 4.1 Release 报错提示: 没有权限查看处理指导 Size on Disk 显示1.0MB 尝试方案(统统无效): 1、“windows虚拟机监控程序平台”、"虚拟机平台"已开启 启用CPU虚拟化 2、C…

InputStream,OutputStream的用法以及相应的案例

1. 文件系统的操作:File类。 2. 文件内容的操作:Stream流。 字符流:IntputStream , OutputStream。 字节流:read , write。 InputStream,OutputStream InputStream和OutputStream都不能被实例…

Acwing2024蓝桥杯FloodFill

AcWing 687. 扫雷 模拟以下样例(10X10): 把扫雷地图转变为数字记录的地图:地雷记作-1,其余表示8个方向有几个地雷,完成后如下图: 接着搜索所有0联通块(为红色矩形),并且把联通块附近不是地雷的点(红色圆形)全标记为-1,如下图: 而答案就是当前该图中大于0的数的数目之和,再加上…

深入理解JavaScript事件循环Event Loop:宏任务与微任务的奇幻之旅

🔥 个人主页:空白诗 文章目录 🎉 引言🌟 什么是事件循环?📚 「宏任务」 vs 「微任务」「宏任务」(Macrotask)「微任务」(Microtask)实际应用中的注意事项 🔀 执行流程概览📝 代码示例…

【数据结构】二叉树(Binary Tree)

文章目录 一、树的概念及结构二、二叉树的概念及结构1.二叉树的概念2.特殊的二叉树3.二叉树的性质 三、二叉树的存储顺序存储链式存储 四、二叉树的实现1.创建二叉树2.二叉树的遍历前序遍历中序遍历后序遍历层序遍历根据遍历顺序创建二叉树 3.二叉树的基本操作1.总结点个数2.二…

国内运营商选择爱立信,或因它的低频5G技术更先进,价格更便宜

国内某运营商将大笔5G设备订单交给爱立信,引发了掀然大波,影响仍在扩散,对此各方说什么原因都有,笔者认为爱立信此次斩获大单,可能在于它的低频5G设备更先进,价格更便宜,对于急于降低成本的国内…

融知财经:期货和现货的区别是什么?哪个风险大?

期货和现货在交易对象等方面存在明显的区别。期货交易是一种衍生金融工具,主要用于价格发现、风险管理和投机,而现货交易则是商品和服务的实际买卖。在选择进行期货交易还是现货交易时,投资者需要根据自己的需求和市场情况来决定。 期货和现货…

智能驱动,精准管理:打造高效干部管理系统

干部管理系统是现代组织管理中不可或缺的工具,它通过信息技术的应用,提高了干部管理的效率和准确性。干部管理系统的主要功能包括: 1. 信息管理:系统可以存储和管理干部的个人信息,包括基本资料、工作经历、教育背景、…

Gitlab搭建

Gitlab搭建 一.gitlab安装二.gitlab安装目录三.gitlab常用命令汇总四.gitlab访问测试1.登录gitlab2.配置默认访问密码3.登陆自己创建的账户 五.gitlab图形化操作1.gitlab关闭自动注册2.gitlab免密登录3.gitlab创建项目4.使用管理员创建账户5.gitlab 添加邮箱设置5.1开启SMTP功能…

基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表

目录 一、引言 二、数据分组原理与意义 三、案例分析 四、代码实现与解释 五、对新手友好的解释 六、技术细节与扩展 七、实际应用场景 八、总结 一、引言 在数据处理和分析的广阔领域中,数据分组是一项基础且重要的任务。数据分组通常指的是将数据集中的元…

Mac idea gradle解决异常: SSL peer shut down incorrectly

系统:mac 软件:idea 解决异常: SSL peer shut down incorrectly 查看有没有安装 gradle -v安装 根据项目gradle提示安装版本 brew install gradle7idea的配置 在settings搜索gradle,配置Local installation,选择自己的安装目录…

VS远程调试

因为是做工厂应用的客制化项目,在客户现场出现异常,本地又很难复现,而且重启软件可能又自动恢复了,此时可以用VisualStudio自带的远程调试功能进行调试,不需要重启软件,能较好的定位问题。客户电脑上不需要…