System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信领域,特别是涉及kafka集群的通信方法和系统。
技术介绍
1、kafka是一款开源的消息引擎系统。一个典型的kafka体系架构包括若干producer、若干broker、若干consumer,以及一个zookeeper集群。其中,producer将消息发送到broker,broker负责将收到的消息存储到磁盘中,而consumer负责从broker订阅并消费消息。
2、kafka集群在一个局域网内部署,局域网内的应用可以正常访问,但是如果两个局域网内的应用共同使用其中一个局域网内的kafka集群时,就会出现消息发送不成功的问题。同一个局域网内通信,发送给consumer或producer的broker元数据其实是该局域网的内网地址,如果其他局域网的生产者要发送消息到该集群,则会访问不通。
3、目前针对相关技术中多局域网无法通过一个kafka通信的问题,尚未提出有效的解决方案。
技术实现思路
1、本申请实施例提供了一种kafka集群的通信方法、系统和存储介质,以至少解决相关技术中多局域网无法通过一个kafka通信的问题。
2、第一方面,本申请实施例提供了一种kafka集群的通信方法,所述方法应用于第一局域网内的nginx服务器,所述方法包括:
3、预先获取目标kafka集群的固定域名地址和端口号,其中,所述目标kafka集群在第二局域网内,所述第二局域网与所述第一局域网为不同局域网;
4、根据所述固定域名地址
5、接收所述第一局域网内应用程序发送的应用请求,其中,所述应用请求中包括所述nginx服务器的ip地址;
6、将所述应用请求转发至所述目标kafka集群,以指示所述目标kafka集群响应所述应用请求。
7、在其中一些实施例中,所述nginx服务器的ip地址被配置为:
8、所述第一局域网内应用程序接收所述目标kafka集群的访问请求,从所述访问请求中获取所述目标kafka集群的固定域名地址;
9、根据所述固定域名地址和预先获取的kafka域名映射关系,确定所述nginx服务器的ip地址,其中,所述nginx服务器的ip地址与所述目标kafka集群的对外ip地址相同,所述kafka域名映射关系包括所述固定域名地址与所述对外ip地址的映射关系。
10、在其中一些实施例中,所述方法还包括:
11、在与所述目标kafka集群建立连接之前,通过修改所述目标kafka集群中broker节点的配置文件,设置所述目标kafka集群的固定域名地址。
12、在其中一些实施例中,所述通过修改所述目标kafka集群的配置文件,设置所述目标kafka集群的固定域名地址包括:
13、在所述目标kafka集群部署于k8s集群中的情况下,将所述固定域名地址设置为所述k8s的域名地址。
14、在其中一些实施例中,述第一局域网内应用程序包括:容器化部署的应用程序和部署在虚拟机中的应用程序。
15、第二方面,本申请实施例提供了一种kafka集群的通信系统,所述系统应用于第一局域网内的nginx服务器,所述系统包括:
16、获取模块,用于预先获取目标kafka集群的固定域名地址和端口号,其中,所述目标kafka集群在第二局域网内,所述第二局域网与所述第一局域网为不同局域网;
17、连接模块,用于根据所述固定域名地址和所述端口号,修改所述nginx服务器的配置文件,与所述目标kafka集群建立连接;
18、接收模块,用于接收所述第一局域网内应用程序发送的应用请求,其中,所述应用请求中包括所述nginx服务器的ip地址;
19、转发模块,用于将所述应用请求转发至所述目标kafka集群,以指示所述目标kafka集群响应所述应用请求。
20、第三方面,本申请实施例提供了一种基于kafka的多局域网通信系统,所述系统包括:目标kafka集群、nginx服务器和应用程序,所述nginx服务器和所述应用程序在第一局域网内,所述目标kafka集群在第二局域网内,所述第二局域网与所述第一局域网为不同局域网;
21、所述应用程序,用于获取所述nginx服务器的ip地址,基于所述nginx服务器的ip地址向所述nginx服务器发送应用请求;
22、所述nginx服务器,用于预先根据所述目标kafka集群的固定域名地址,与所述目标kafka集群建立连接,当接收到所述应用程序发送的应用请求时,将所述应用请求转发至所述目标kafka集群;
23、所述目标kafka集群,用于响应所述应用请求。
24、在其中一些实施例中,所述应用程序包括域名获取模块和ip确定模块,其中,
25、所述域名获取模块,用于接收所述目标kafka集群的访问请求,从所述访问请求中获取所述目标kafka集群的固定域名地址;
26、所述ip确定模块,用于根据所述固定域名地址和预先获取的kafka域名映射关系,确定所述nginx服务器的ip地址,其中,所述nginx服务器的ip地址与所述目标kafka集群的对外ip地址相同,所述kafka域名映射关系包括所述固定域名地址与所述对外ip地址的映射关系。
27、第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的kafka集群的通信方法。
28、相比于相关技术,本申请实施例提供的kafka集群的通信方法,应用于第一局域网内的nginx服务器,通过预先获取目标kafka集群的固定域名地址和端口号,其中,目标kafka集群在第二局域网内,第二局域网与第一局域网为不同局域网,根据固定域名地址和端口号修改nginx服务器的配置文件,与目标kafka集群建立连接,接收第一局域网内应用程序发送的应用请求,其中,应用请求中包括nginx服务器的ip地址,将应用请求转发至目标kafka集群,以指示目标kafka集群响应应用请求,解决了多局域网无法通过一个kafka通信的问题。通过为kafka集群设置固定域名,以及nginx服务器代理的方式,实现多个局域网内应用与其中一个局域网内kafka集群间的通信。
本文档来自技高网...【技术保护点】
1.一种kafka集群的通信方法,其特征在于,所述方法应用于第一局域网内的nginx服务器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述nginx服务器的IP地址被配置为:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述通过修改所述目标kafka集群的配置文件,设置所述目标kafka集群的固定域名地址包括:
5.根据权利要求1所述的方法,其特征在于,所述第一局域网内应用程序包括:容器化部署的应用程序和部署在虚拟机中的应用程序。
6.一种kafka集群的通信系统,其特征在于,所述系统应用于第一局域网内的nginx服务器,所述系统包括:
7.一种基于kafka的多局域网通信系统,其特征在于,所述系统包括:目标kafka集群、nginx服务器和应用程序,所述nginx服务器和所述应用程序在第一局域网内,所述目标kafka集群在第二局域网内,所述第二局域网与所述第一局域网为不同局域网;
8.根据权利要求7所述的系统,其特征在于,
9.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5中任一项所述的kafka集群的通信方法。
...【技术特征摘要】
1.一种kafka集群的通信方法,其特征在于,所述方法应用于第一局域网内的nginx服务器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述nginx服务器的ip地址被配置为:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述通过修改所述目标kafka集群的配置文件,设置所述目标kafka集群的固定域名地址包括:
5.根据权利要求1所述的方法,其特征在于,所述第一局域网内应用程序包括:容器化部署的应用程序和部署在虚拟机中的应用程序。
6.一种kafka集群的通...
【专利技术属性】
技术研发人员:陈玉超,孙学军,焦莉,王鹏,郑健,林达,虞子奕,
申请(专利权)人:华电电力科学研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。