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.mzph.cn/diannao/9684.shtml

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

相关文章

2024.05.10作业

TCP服务器 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> #include <QTcpSocket> #include <QList> #include <QMessageBox> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; …

【神器来袭】快速解放双手,朋友圈自动转发工具,告别繁琐操作!

朋友圈作为一个重要的营销推广渠道&#xff0c;如果能实现自动转发&#xff0c;那对于很多企业或个人来说&#xff0c;是极好的。下面&#xff0c;就给大家分享一个实用且便捷的朋友圈运营工具——个微管理系统&#xff0c;让大家都能快速推广。 1、多账号登录&#xff0c;定时…

适用于 macOS 的最佳独立 HBO Max 客户端

适用于 macOS 的最佳独立 HBO Max 应用程序。不再在浏览器选项卡之间切换。只需直接从 Dock 启动 Clicker for HBO Max 即可开始狂欢。 HBO Max 客户端 Clicker for HBO Max 下载 Clicker for HBO Max mac版安装教程 软件下载完成后&#xff0c;双击pkg根据提示进行安装 Clic…

ssh远程免密登录

ssh远程连接分为五个阶段 版本号协商阶段密钥和算法协商阶段认证阶段会话请求阶段交互会话阶段 而上图的SessionKey即是在阶段2&#xff1a;密钥和算法协商阶段&#xff0c;服务器端和客户端利用DH交换&#xff08;Diffie-Hellman Exchange&#xff09;算法、主机密钥对等参数…

编译适配纯鸿蒙系统的ijkplayer中的ffmpeg库

目前bilibili官方的ijkplayer播放器&#xff0c;是只适配Android和IOS系统的。而华为接下来即将发布纯harmony系统&#xff0c;是否有基于harmony系统的ijkplayer可以使用呢&#xff1f; 鸿蒙版ijkplayer播放器是哪个&#xff0c;如何使用&#xff0c;这个问题&#xff0c;大家…

暴力法解决最近对问题和凸包问题-实现可视化

目录 最近对问题 凸包问题 最近对问题 顾名思义就是采用蛮力法求出所有点之间的距离&#xff0c;然后进行比较找出第一个最近对&#xff0c;一个一个进行比较。 大概思路就是如图&#xff08;每个圈代表一个数对&#xff09; 第一个和其他四个比较 第二个和其他三个比较 …

新版文件同步工具(Python编写,其中同时加入了多进程计算MD5、多线程复制大文件、多协程复制小文件、彩色输出消息、日志功能)

两个月前&#xff0c;接到一个粉丝的要求&#xff0c;说希望在我之前编写的一个python编写的文件同步脚本(Python编写的简易文件同步工具(已解决大文件同步时内存溢出问题)https://blog.csdn.net/donglxd/article/details/131225175)上加入多线程复制文件的功能&#xff0c;前段…

英语学习笔记8——What‘s your job?

What’s your job? 你是做什么工作的&#xff1f; 词汇 Vocabulary policeman 男警察 policewoman 女警察 police n. 警力 集合名词&#xff0c;永表复数 西方国家警察管的事很多。交警&#xff0c;刑警&#xff0c;武警一般不分开。 taxi driver 出租车司机 taxi / cab n.…

空间复杂度

前言 通过上一节的学习&#xff0c;我们知道了衡量一个算法是否高效的标准就是复杂度&#xff0c;我们已经学习了时间复杂度&#xff0c;那么本节我们就了解一下空间复杂度的相关知识&#xff0c;那么我们废话不多说&#xff0c;正式进入今天的学习 空间复杂度 空间复杂度也是…

python爬虫(三)之虎嗅网汽车文章爬虫

python爬虫&#xff08;三&#xff09;之虎嗅网汽车文章爬虫 闲来没事&#xff0c;闲鱼上有个好兄弟要我从虎嗅网上抓一些汽车文章的爬虫&#xff0c;于是大力出奇迹&#xff0c;我写了一个python程序&#xff0c;将这个网站上所有的汽车文章全部抓取下来了&#xff0c;存储到…

若依生成代码的步骤

1.创建表&#xff0c;要有注释 2.导入表 3.创建主菜单 4.修改表 5.生成代码 6.把代码复制到自己的程序中&#xff1a;复制表、后端、前端 7.重启后端&#xff0c;如果有问题则clean 8.回到浏览器可以看到正常显示了生成的页面

JAVA获取application.yml配置文件的属性值

application.yml配置参数 方式一&#xff1a;使用Value方式(常用) 语法 Value("${配置文件中的key:默认值}") Value("${配置文件中的key}")方法1&#xff1a;使用的类文件中定义变量&#xff0c;直接使用变量 import org.springframework.beans.factory.an…

【2024】Gradle安装配置以及基于Kotlin 进行详细使用

目录&#x1f4bb; 一、介绍二、安装Gradle1、下载安装2、配置环境变量2.1、mac2.2、windows 3、配置国内国内镜像源4、初始化Gradle项目4.1、项目结构4.2、Gradle常用命令 三、项目配置1、配置文件介绍1.1、设置文件settings.gradle1.1.1、单体项目1.1.2、父子项目 1.2、构建文…

5.2 Java全栈开发前端+后端(全栈工程师进阶之路)-服务端框架-Spring框架-相信我看这一篇足够

1.Spring框架 1.1.Spring框架简介 Spring是一个基于java的轻量级的、一站式框架。 虽然Spring是一个轻量级框架&#xff0c;但并不表示它的功能少。实际上&#xff0c;spring是一个庞然大物&#xff0c;包罗万象。 时至今日&#xff0c;Spring已经成为java世界中事实上的标准…

常用控件(一)

常用控件 一 按钮类控件QPushButtonQRadioButtonQCheckBox 按钮类控件 QPushButton 使用QPushButton表示一个按钮&#xff0c;这是我们当前最熟悉的一个控件了; QPushButton继承自QAbstractButton&#xff0c;这个类是个抽象类&#xff0c;是其他按钮类的父类; QAbstractButt…

Java毕业设计 基于SpringBoot vue新能源充电系统

Java毕业设计 基于SpringBoot vue新能源充电系统 SpringBoot 新能源充电系统 功能介绍 首页 图片轮播 充电桩 充电桩类型 充电桩详情 充电桩预约 新能源公告 公告详情 登录注册 个人中心 余额充值 修改密码 充电桩报修 充电桩预约订单 客服 后台管理 登录 个人中心 修改密码…

网工交换基础——VLAN Maping

一、定义 VLAN Maping通过修改报文携带的VLAN Tag来实现不同VLAN的相互映射。 二、应用场景 1、场景一&#xff1a;两个VLAN相同的二层用户网络通过骨干网络互联&#xff0c;为了实现用户之间的二层互通&#xff0c;以及二层协议&#xff08;例如MSTP等&#xff09;的统一部署…

layui select 绑定onchange事件失效

layui select 绑定onchange事件失效 问题背景解决方案 问题背景 在日常工作中&#xff0c;可能会用到页面 freemaker 以及 layui 前端框架&#xff0c;这个时候直接在 select 上面绑定 onchange 事件往往是不生效的&#xff0c;错误的方式 这种方式给 select 绑定的 onchange…

智慧景区新篇章:山海鲸可视化管理解析

随着旅游业的蓬勃发展&#xff0c;景区管理面临着越来越多的挑战。如何提升游客体验、优化资源配置、确保游客安全&#xff0c;成为景区管理者亟需解决的问题。山海鲸智慧景区管理可视化系统&#xff0c;以其先进的技术和创新的理念&#xff0c;为景区管理带来了全新的解决方案…

图像ISP——AGC参数解析

前言 AWB和AGC是两种常见的自动调整功能。AWB用于自动调整图像的白平衡&#xff0c;以确保颜色在不同光照条件下仍然看起来自然。而AGC则用于自动调整图像的增益&#xff0c;以在不同的亮度条件下保持适当的曝光。 代码例程 static AWB_AGC_TABLE_S g_stAwbAgcTable {/* bvali…