基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法技术

技术编号:24176400 阅读:49 留言:0更新日期:2020-05-16 04:48
本发明专利技术公开了一种基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法,属于技术领域,设置nginx TCP配置文件:启动Nginx服务,同时请求服务注册中心,获取服务实例的地址,写入到配置文件upsync_dump_path,nginx动态加载配置文件upsync_dump_path,无需重启nginx,至此nginx可对外正常提供TCP反向代理功能;通过自主研发Nginx扩展模块,编译Nginx源码,指定自研的扩展模块,生成nginx可执行文件,启动nginx服务,提供TCP的反向代理服务。有效的减少人工修改nginx的配置文件的次数,降低人工操作的错误率,降低服务请求失败率,提高服务的可用性。

【技术实现步骤摘要】
基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法
本专利技术属于网络服务通讯领域,尤其涉及一种基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法。
技术介绍
当前互联网架构下,大部分系统已经转型分布式。同一个服务后台会部署多份服务实例,对外暴露多个服务地址。在部分服务实例故障的情况下,不影响整体服务的可用行。服务注册中心是存储服务实例和服务地址的数据库。服务实例启动时把服务地址注册到服务注册中心,服务实例终止时取消注册。服务客户端根据路由查询服务注册中心,找出可用的服务实例的地址。常用的服务注册中心有:Consul,Etcd和Nacos等。Nginx是一个高性能的HTTP和反向代理web服务器,能够提供HTTP协议和TCP协议的反向代理。当前面临的技术缺陷是:Nginx的TCP反向代理只支持静态的tcpupstream配置,即服务实例的地址需要预先写在Nginx的配置文件中。当服务实例的地址发生变化时,Nginx不能将服务客户端请求反向代理到最新的服务实例上,导致服务客户端请求服务实例异常。
技术实现思路
本专利技术所要解决的技术问题是在于克服现有技术的缺点与不足,通过自主研发Nginx扩展模块,编译Nginx源码,指定自研的扩展模块,生成nginx可执行文件,启动nginx服务,提供TCP的反向代理服务。本专利技术为解决上述技术问题采用以下技术方案:基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法,包含客户端、Nginx服务、服务注册中心和服务实例,具体包含如下步骤:步骤1,设置nginxTCP配置文件:步骤2,启动Nginx服务,同时请求服务注册中心,获取服务实例的地址,写入到配置文件upsync_dump_path,nginx动态加载配置文件upsync_dump_path,无需重启nginx,至此nginx可对外正常提供TCP反向代理功能;步骤3,Nginx间隔定时同步服务注册中心时间间隔upsync_interval时间向服务注册中心同步TCP配置,写入到配置文件路径upsync_dump_path,nginx动态加载配置文件upsync_dump_path;步骤4,当反向代理到一个服务实例A时,若超过服务实例地址超时时间upsync_timeout,且服务实例A未响应,则说明服务实例A故障,进而换另一个服务实例B重新尝试反向代理,并把服务实例A从upstream中踢出;过一定时间,再去尝试连接服务实例A,若连接成功,则把服务实例A重新加入到upstream。作为本专利技术基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法的进一步优选方案,在一个实施方式中,所述nginxTCP配置文件包含动态upstream必要参数和Server必要参数;其中,动态upstream必要参数,用于服务注册中心的类型,通信地址和交互的时间的设置;Server必要参数,用于对外提供服务的端口和代理的后台服务的设置。作为本专利技术基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法的进一步优选方案,在一个实施方式中,所述动态upstream必要参数包含服务注册中心类型upsync_type,服务注册中心访问地址upsync,服务实例地址超时时间upsync_timeout,定时同步服务注册中心时间间隔upsync_interval。作为本专利技术基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法的进一步优选方案,在一个实施方式中,所述Server必要参数包含nginx反向代理服务端口listen,proxy_pass指定转发的upstream。作为本专利技术基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法的进一步优选方案,在一个实施方式中,在步骤4中,一定时间为10秒。本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:1、减少人工修改nginx的配置文件的次数,降低人工操作的错误率;2、降低服务请求失败率,提高服务的可用性;3、能够自动识别出不可用服务实例,主动踢出服务实例地址群,提高反向代理效率;4、能够适配多种服务注册中心,应用范围广。附图说明图1是本专利技术的实现逻辑图;图2是本专利技术的服务实施部署图。具体实施方式下面结合附图对本专利技术的技术方案做进一步的详细说明:下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术通过自主研发Nginx扩展模块,编译Nginx源码,指定自研的扩展模块,生成nginx可执行文件,启动nginx服务,提供TCP的反向代理服务。减少人工修改nginx的配置文件的次数,降低人工操作的错误率;降低服务请求失败率,提高服务的可用性。具体实施例如下:基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法,如图2所示,包含多个客户端、Nginx服务、服务注册中心和AB两个服务实例,具体包含如下步骤:如图1所示,步骤1,设置nginxTCP配置文件:动态upstream必要参数:服务注册中心类型upsync_type,服务注册中心访问地址upsync,服务实例地址超时时间upsync_timeout,定时同步服务注册中心时间间隔upsync_interval,生成服务实例地址的配置文件路径upsync_dump_path;动态upstream的作用:服务注册中心的类型,通信地址和交互的时间的设置;Server必要参数:nginx反向代理服务端口listen,proxy_pass指定转发的upstream;Server的作用:对外提供服务的端口和代理的后台服务的设置;步骤2,启动Nginx服务,同时请求服务注册中心,获取服务实例的地址,写入到配置文件upsync_dump_path,nginx动态加载配置文件upsync_dump_path,无需重启nginx,至此nginx可对外正常提供TCP反向代理功能;步骤3,Nginx间隔定时同步服务注册中心时间间隔upsync_interval时间向服务注册中心同步TCP配置,写入到配置文件upsync_dump_path,nginx动态加载配置文件upsync_dump_path;步骤4,当反向代理到一个服务实例A时,若超过服务实例地址超时时间upsync_timeout,且服务实例A未响应,则说明服务实例A故障,进而换另一个服务实例B重新尝试反向代理,并把服务实例A从upstream中踢出;过10秒钟,再去尝试连接服务实例A,若连接成功,则把服务本文档来自技高网...

【技术保护点】
1.基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法,其特征在于:包含客/n户端、Nginx服务、服务注册中心和服务实例,具体包含如下步骤:/n步骤1,设置nginx TCP配置文件:/n步骤2,启动Nginx服务,同时请求服务注册中心,获取服务实例的地址,写入到配置文件upsync_dump_path,nginx动态加载配置文件upsync_dump_path,无需重启nginx,至此nginx可对外正常提供TCP反向代理功能;/n步骤3,Nginx间隔定时同步服务注册中心时间间隔upsync_interval时间向服务注册中心同步TCP配置,写入到配置文件路径upsync_dump_path,nginx动态加载配置文件upsync_dump_path;/n步骤4,当反向代理到一个服务实例A时,若超过服务实例地址超时时间upsync_timeout,且服务实例A未响应,则说明服务实例A故障,进而换另一个服务实例B重新尝试反向代理,并把服务实例A从upstream中踢出;过一定时间,再去尝试连接服务实例A,若连接成功,则把服务实例A重新加入到upstream。/n

【技术特征摘要】
1.基于Nginx自研扩展模块自动拉取服务注册中心TCP配置方法,其特征在于:包含客
户端、Nginx服务、服务注册中心和服务实例,具体包含如下步骤:
步骤1,设置nginxTCP配置文件:
步骤2,启动Nginx服务,同时请求服务注册中心,获取服务实例的地址,写入到配置文件upsync_dump_path,nginx动态加载配置文件upsync_dump_path,无需重启nginx,至此nginx可对外正常提供TCP反向代理功能;
步骤3,Nginx间隔定时同步服务注册中心时间间隔upsync_interval时间向服务注册中心同步TCP配置,写入到配置文件路径upsync_dump_path,nginx动态加载配置文件upsync_dump_path;
步骤4,当反向代理到一个服务实例A时,若超过服务实例地址超时时间upsync_timeout,且服务实例A未响应,则说明服务实例A故障,进而换另一个服务实例B重新尝试反向代理,并把服务实例A从upstream中踢出;过一定时间,再去尝试连接服务实例A,若连接成功,则把服务实例A重新加入到upstream。


2.根据权利要求1所述的基于Nginx自研扩展模块自动拉取服务注册中心TCP配置...

【专利技术属性】
技术研发人员:陈旋王冲周甜邓志伟朱冬冬
申请(专利权)人:江苏艾佳家居用品有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1