OpenNJet v2.0.0:动态能力迈入全新篇章
在最新发布的v2.0.0版本中,对基础框架进行了大幅优化,增加对HTTP/3的支持,进一步丰富了OpenNJet的生态,动态能力逐渐成熟……
在最新发布的v2.0.0版本中,对基础框架进行了大幅优化,增加对HTTP/3的支持,进一步丰富了OpenNJet的生态,动态能力逐渐成熟……
上一篇文章介绍了 OpenNJet 如何实现高可用配置,这一篇文章介绍下高可用模式下实现集群配置同步的功能。OpenNJet 有很多动态配置的模块,这些动态的配置可以利用我们 HA 模块实现在主备节点之间进行同步……
OpenNJet KIC(K ubernetes Ingress Controller) 基于 OpenNJet proxy 的动态特性、高性能实现。弥补 nginx 在云原生场景中应用的不足。提供了丰富的流量管理能力,如动态 location、host/path 路由、负载均衡、动态 upstream、金丝雀发布、TLS Termination/SNI 等……
为了解决 NGINX 的动态配置问题,OpenNJet 首先实现了一个有多个 CoPilots:CoPilot:Ctrl、 CoPilot:broker、CoPilot:沙箱构建的动态配置框架,再基于这个框架,逐个对现存的模块进行动态化改造……
OpenNJet 实现了可持久化的键值存储(key-value store)功能,并提供了相应的 API 对键值进行操作……
在部署服务端应用时,为了实现服务的高可用,常见的一种方案是额外安装 Keepalived, 通过 Keepalived 来监控服务端应用的运行状态,并设置虚拟 IP (VIP), 客户端通过 VIP 访问服务端实例……
我们都知道在启动一个容器的时候一般都会限制该容器可使用的资源,比如cpu、内存等。而启动容器后,容器里相关资源配置文件都是宿主机的资源信息,比如Linux利用Cgroup实现了对容器的资源限制,但在容器内部依然缺省挂载了宿主机上的procfs的/proc目录,其包含如:meminfo, cpuinfo,stat, uptime等资源信息……
在实际的业务使用过程中,如何能够做到业务繁忙时让业务快速响应,而在请求量小的时候还能释放多余的机器资源出来,是个比较困难的问题。OpenNJet实现了一种方法,能够基于cpu的使用率动态调整worker进程数量,从而实现刚才的目标……
代理协议(Proxy protocol),是HAProxy的作者Willy Tarreau于2010年开发和设计的一个Internet协议,通过为tcp添加一个很小的包头信息,来方便的传递客户端信息(协议栈、源IP、目的IP、源端口、目的端口等),在网络情况复杂又需要获取用户真实IP时非常有用……
通过修改,在QUIC协议支持的加密套件中增加了国密套件TLS_SM4_GCM_SM3,目前可以用支持QUIC协议及该加密套件的客户端访问……