OpenNJet:云原生技术中的创新者与实践者

2024-05-07 02:28

本文主要是介绍OpenNJet:云原生技术中的创新者与实践者,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

目录

  • 引言
  • OpenNJet介绍
    • OpenNJet优势
      • 1. 性能无损动态配置
      • 2. 灵活的CoPilot框架
      • 3. 支持HTTP/3
      • 4. 支持国密
      • 5. 企业级应用
      • 6. 高效安全
  • OpenNJet 编译与安装
    • 环境准备
    • 编译环境配置
      • 配置yum源
      • yum 安装软件包
      • 创建符号连接
      • 修改 ld.so.conf 配置
    • 编译代码
  • 部署 WEB SERVER
    • 配置OpenNJet
    • 部署 Web 应用程序
    • 启动 NJet
    • 访问 Web 应用程序
  • 个人体验分享
    • 安装过程
    • 意外发现
    • 总结
  • 附录

引言

在当今快速发展的云计算时代,云原生技术正成为企业数字化转型的核心驱动力。云原生架构以其灵活性、可扩展性和高效的资源利用,为软件的快速迭代和持续集成提供了强大的支持。在这一背景下,高性能的WEB应用与代理软件成为了构建云原生服务网格的关键组件。

OpenNJet应用引擎正是这样一款应运而生的产品,它不仅继承了NGINX的稳定性和高效性,还通过云原生功能增强、安全加固和代码重构,实现了性能的飞跃和功能的丰富。作为云原生服务网格的数据平面,OpenNJet通过动态配置加载、主动式健康检测、集群高可用等特性,为企业提供了一个既强大又灵活的解决方案,以应对不断变化的市场需求。

借此机会,我们来深入了解一下OpenNJet是什么,以及OpenNJet的强大功能和实际应用。

OpenNJet介绍

OpenNJet 应用引擎是基于 NGINX 的面向互联网和云原生应用提供的运行时组态服务程序,作为底层引擎,OpenNJet 实现了NGINX 云原生功能增强、安全加固和代码重构,利用动态加载机制可以实现不同的产品形态,如Web服务器、流媒体服务器、负载均衡、代理(Proxy)、应用中间件、API网关、消息队列等产品形态等等。
OpenNJet 在云原生架构中作为数据平面,除了提供南北向通信网关的功能以外,还提供了服务网格中东西向通信能力。在原有功能基础上增加了透明流量劫持、熔断、遥测与故障注入等新功能特性。

在这里插入图片描述

OpenNJet优势

1. 性能无损动态配置

动态配置能力解决NGINX长期痛点,实时更改NGINX配置而无需重新启动服务器。不中断服务,快速响应流量需求变化

2. 灵活的CoPilot框架

旨在实现高性能的数据处理能力的同时提供方便扩展的管理接口,如指标输出、健康检查、管理界面、配置同步等以便灵活地、动态地监控、配置和管理系统的各个方面,同时确保数据面的稳定性和可靠性

3. 支持HTTP/3

HTTP/3采用了全新的底层传输协议即QUIC,为您提供更快、更可靠和更安全的Web浏览体验,保证互联网数据传输效率的同时减少用户等待,并增强网络的安全性

4. 支持国密

支持国密 SM2、SM3、SM4算法,场景主要为Server和反向代理两种场景,为您提供更强的数据保护,满足合规性

5. 企业级应用

提供集群状态同步及集群配额控制、高可用及运维文档一体化功能,可以帮助企业更好地实现自动化部署、持续集成和持续交付等 DevOps 实践

6. 高效安全

旨在提高现代应用的安全性、可用性和管理效率,特别是涉及到敏感数据、大规模集群和高可用性要求时,帮助企业更好地保护数据、提供可靠的服务,并简化运维任务

在这里插入图片描述

OpenNJet 编译与安装

大致了解了OpenNJet 以及功能和优势,我们来先体验一下编辑和安装吧。

环境准备

  • 能够访问外网的服务器
  • 版本最低为:CentOS Linux release 7.9.2009 (Core)

编译环境配置

配置yum源

  1. 执行命令:安装epel-release、centos-release-scl-rh和https://repo.ius.io/ius-release-el7.rpm
sudo yum --enablerepo=extras install -q -y epel-release centos-release-scl-rh https://repo.ius.io/ius-release-el7.rpm
  1. 从Mercurial官方网站下载CentOS 7版本的存储库配置文件
sudo curl -o /etc/yum.repos.d/mercurial.repo https://www.mercurial-scm.org/release/centos7/mercurial.repo
  1. 上面步骤完成后,文件系统的目录/etc/yum.repos.d 将生成对应的repo文件。
  2. 可以查看mercurial.repo文件的详细信息
ls -al /etc/yum.repos.d/mercurial.repo

yum 安装软件包

sudo yum install -y devtoolset-8-make devtoolset-8-toolchain ca-certificates mercurial zlib-devel cmake3 ninja-build libunwind-devel pcre-devel openssl-devel libtool libtool-ltdl

创建符号连接

sudo ln -s /opt/rh/devtoolset-8/root/usr/bin/gcc /usr/local/bin/gcc
sudo ln -s /opt/rh/devtoolset-8/root/usr/bin/c++ /usr/local/bin/c++
sudo ln -s /opt/rh/devtoolset-8/root/usr/bin/cc /usr/local/bin/cc
sudo ln -s /opt/rh/devtoolset-8/root/usr/bin/make /usr/local/bin/make

修改 ld.so.conf 配置

sudo bash -c 'echo "/usr/local/lib" >> /etc/ld.so.conf' 
sudo ldconfig

编译代码

把OpenNJet 1.0.zip 包上传到 /home 目录下。 并解压 unzip njet1.0.zip,如图:
[图片]

运行脚本build_cc.sh

 sh build_cc.sh conf

在这里插入图片描述
执行make命令:如果make 后,有如下提示:则继续 执行 make 指令。
在这里插入图片描述
正确编译的结果如图
在这里插入图片描述
最后执行

make install

部署 WEB SERVER

前提是需要先按照我们上一步正确操作了OpenNJet的编译与安装步骤

配置OpenNJet

OpenNJet 的主要配置文件为 njet.conf。可以通过修改该文件来配置 OpenNJet。 例如,以下是一个简单的 OpenNJet配置文件示例,用于将所有请求重定向到一个 HTML 文件:

http {server {listen 80;server_name example.com;location / {root /var/www/html;index index.html;} }
}

上述配置中,在 HTTP 块中定义了一个名为“server”的服务器块。该服务器块监听 80 端口,并将请求的根目录设置为/var/www/html。如果请求的路径不存在,默认会返 回 index.html 文件。

部署 Web 应用程序

在配置 NGINX之前,需要将 Web 应用程序部署到服务器上。可以将 Web 应用程序放置在服务器上的任何位置,只要在 NGINX配置文件中正确设置 root 目录即可。

启动 NJet

在完成 OpenNJet 配置后,可以通过以下命令启动 OpenNJet:

  njet -p /tmpr/njet/ -c conf/njet.conf 常见启动参数:-p 指定 prefix 配置文件路径,不指定,默认/etc/njet -c 指定配置文件,不指定,默认 njet.conf-e 指定 error 日志文件

访问 Web 应用程序

将 Web 应用程序放置在 /var/www/html 目录中,访问结果如下图:
在这里插入图片描述

个人体验分享

安装过程

安装OpenNJet的过程对我来说既是一次学习的机会,也是一次挑战。提前检查系统环境和依赖,避免了在安装过程中可能出现的许多常见问题,从下载到配置,每一步都充满了新鲜感。我选择的是源码安装方式,这样可以让我更深入地了解软件的内部结构。在编译过程中,我遇到了一些依赖性问题,但通过查阅官方文档和社区论坛,我逐渐解决了这些问题。这个过程虽然有些曲折,但也让我对OpenNJet的工作原理有了更深刻的理解。

意外发现

在安装过程中,我发现OpenNJet的配置文件非常灵活,可以轻松地根据不同的应用场景进行调整。此外,我还惊喜地发现OpenNJet内置了许多高级功能,如故障注入和遥测,这些功能在其他同类软件中很少见。这些发现让我对OpenNJet的功能性和可定制性印象深刻。

随着对OpenNJet的深入了解,我开始思考它在云原生架构中更广泛的应用。我认为OpenNJet的动态配置加载和故障注入功能,对于实现微服务架构中的弹性和灵活性至关重要。同时,我也在考虑如何将OpenNJet集成到现有的CI/CD流程中,以实现自动化部署和测试。

总结

通过这次安装和测试,我对OpenNJet有了全面而深入的了解,包括安装、配置和性能等。从灵活的配置到强大的性能,从详尽的文档到活跃的社区,OpenNJet给我留下了深刻的印象。让我们期待OpenNJet在未来云原生世界中的精彩表现。

当然,以下是一些建议,您可以根据这些建议增加一些个人心得和经验:


附录

  • GitHub:OpenNJet
  • OpenNJet使用手册
  • OpenNJet快速上手
  • OpenNJet 编码规范以及新手指引
  • OpenNJet功能特性

这篇关于OpenNJet:云原生技术中的创新者与实践者的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966074

相关文章

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.