一种kafka服务访问方法技术

技术编号:35189818 阅读:11 留言:0更新日期:2022-10-12 18:06
本发明专利技术公开一种kafka服务器访问方法,客户端以kafka代理服务为媒介访问kafka服务,其中,客户端访问kafka代理服务,kafka代理服务将客户端的数据转发至kafka服务,kafka服务对客户端数据进行反馈,kafka代理服务将反馈信息中元数据的发布域名修改为客户端数据中的链路服务端IP,将元数据中的端口改为kafka代理服务的代理端口,而客户端通过修改后的元数据访问kafka服务。本发明专利技术中访问kafka服务器的客户端无需配置域名解析即可实现对kafka服务器的访问。器的访问。器的访问。

【技术实现步骤摘要】
一种kafka服务访问方法


[0001]本专利技术涉及kafka代理
具体地说是一种kafka服务访问方法。

技术介绍

[0002]kafka做为一个高性能的消息处理器,近年来获得越来越多的应用。但是在kafka服务的启动过程中,需要配置以下参数:
[0003]“advertised.listeners=PLAINTEXT://kafka.hysgkafka.com:9092”,客户端访问kafka服务时,需要分两步,第一次访问,kafka服务返回包含该参数的元数据给客户端,客户端接收到元数据后,根据元数据里面提供的信息,再次访问kafka,才能获得正确结果。根据以上特征,该配置项传统的配置方式有两种,但各有优缺点,如下所述:
[0004](1)如果advertised.listeners配置中,其域名部分如果是一个域名(如advertised.listeners=PLAINTEXT://kafka.hysgkafka.com:9092),而不是ip的情况下,kafka服务不受ip地址变更的影响,ip地址发生变化时,不需要修改kafka的配置文件,也不需要重启kafka服务,且kafka服务器存在多个ip的情况下,多个ip可以用同一个端口对外提供服务,不足之处是客户端访问kafka服务时,需要通过本地hosts文件或者dns域名服务器,对此域名做解析才能正确访问kafka服务,但在实际应用中,由于很多产品是软硬件一体,不允许通过操作系统后台来配置该域名解析,导致此种情况下这些产品无法访问kafka服务。
[0005](2)如果advertised.listeners配置中,其域名部分是一个ip地址,而不是一个域名(如前述域名)的情况下,那么如果ip地址发生变化,则需用重新修改kafka的配置文件,且需要重新启动kafka服务。并且,此种配置方式,如果服务器存在多个ip,要想每个ip都能提供服务,则需要绑定多个端口,也给kafka的配置增加了难度。

技术实现思路

[0006]为此,本专利技术所要解决的技术问题在于提供一种kafka服务器访问方法,访问kafka服务器的客户端无需配置域名解析即可实现对kafka服务器的访问。
[0007]为解决上述技术问题,本专利技术提供如下技术方案:
[0008]一种kafka服务访问方法,客户端通过kafka代理服务访问kafka服务;客户端向kafka代理服务发送访问请求,kafka代理服务从该访问请求中获得该访问请求中链路服务端IP,然后kafka代理服务开设一条新链路链接至kafka服务并通过该链路将从客户端接收到的数据不做更改直接全部转发给kafka服务,kafka服务收到kafka代理服务转发的客户端的数据后,根据客户端的数据做出响应并将反馈信息发送至kafka代理服务,当客户端首次通过kafka代理服务访问kafka服务时,kafka代理服务将反馈信息的元数据中的发布域名修改为客户端发出的访问请求中的链路服务端IP,并将元数据中的端口改为kafka代理服务的代理端口,然后将修改后的反馈信息转发给客户端,客户端根据修改后的元数据访问kafka服务器;当客户端非首次通过kafka代理服务访问同一kafka服务时,kafka代理服
务接收到来自kafka服务器的反馈信息后,对反馈信息中的数据是否为元数据进行判断,如果反馈信息中的数据为元数据,则kafka代理服务将反馈信息的元数据中的发布域名修改为客户端发出的访问请求中的链路服务端IP,并将元数据中的端口改为kafka代理服务的代理端口,然后将修改后的反馈信息转发给客户端,如果反馈信息中的数据不是元数据,则直接将反馈信息全部转发给客户端,客户端接收到该反馈信息后对该反馈信息进行判断,如果反馈信息中包含有客户端所需要的最终数据,则终止访问,反之,客户端则需要继续通过kafka代理服务访问kafka服务,直至反馈信息中所包含的数据为客户端所需要的最终数据,在客户端继续通过kafka代理服务访问kafka服务时,客户端通过反馈信息中最新的被修改的元数据访问kafka服务;访问结束后,客户端断开与kafka代理服务之间的连接,kafka代理服务断开与kafka服务之间的连接。
[0009]上述kafka服务器访问方法,在客户端与kafka代理服务建立连接前,对kafka代理服务的端口进行设置,并对kafka服务的端口进行设置,kafka代理服务通过kafka服务的端口访问kafka服务。
[0010]上述kafka服务器访问方法,当多个客户端通过同一个kafka代理服务访问同一个kafka服务时,kafka代理服务中设有kafka代理服务的端口与kafka服务的端口映射关系。
[0011]上述kafka服务器访问方法,kafka服务在启用前对发布域名进行设置。
[0012]本专利技术的技术方案取得了如下有益的技术效果:
[0013]1.kafka服务启动后,如果IP地址发生变化,不需要重新配置kafka服务,也不需要重新启动kafka服务
[0014]2.多个ip可以绑定到同一个端口,无需每个ip绑定一个端口
[0015]3.客户端访问kafka服务时,不需要在客户端做域名解析,对于那些无法做域名解析的客户端,使之能够顺利访问kafka服务。
附图说明
[0016]图1为本专利技术kafka服务访问方法的流程图;
[0017]图2为kafka服务配置结果;
[0018]图3为客户端通过kafka代理服务访问kafka服务的结果反馈图;
[0019]图4为连接kafka服务的验证图。
具体实施方式
[0020]下面结合示例,针对本专利技术进行进一步说明。
[0021]如图1所示,利用本专利技术kafka服务访问方法对kafka服务进行访问时,先将客户端与kafka服务通过kafka代理服务连通。客户端向kafka代理服务发送访问请求,kafka代理服务从该访问请求中获得该访问请求中链路服务端IP,然后kafka代理服务开设一条新链路链接至kafka服务并通过该链路将从客户端接收到的数据不做更改直接全部转发给kafka服务,kafka服务收到kafka代理服务转发的客户端的数据后,根据客户端的数据做出响应并将反馈信息发送至kafka代理服务,当客户端首次通过kafka代理服务访问kafka服务时,kafka代理服务将反馈信息的元数据中的发布域名修改为客户端发出的访问请求中的链路服务端IP,并将元数据中的端口改为kafka代理服务的代理端口,然后将修改后的反
馈信息转发给客户端,客户端根据修改后的元数据访问kafka服务器;当客户端非首次通过kafka代理服务访问同一kafka服务时,kafka代理服务接收到来自kafka服务器的反馈信息后,对反馈信息中的数据是否为元数据进行判断,如果反馈信息中的数据为元数据,则kafka代理服务将反馈信息的元数据中的发布域名修改为客户端发出的访问请求中的链路服务端IP,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种kafka服务访问方法,其特征在于,客户端通过kafka代理服务访问kafka服务;客户端向kafka代理服务发送访问请求,kafka代理服务从该访问请求中获得该访问请求中链路服务端IP,然后kafka代理服务开设一条新链路链接至kafka服务并通过该链路将从客户端接收到的数据不做更改直接全部转发给kafka服务,kafka服务收到kafka代理服务转发的客户端的数据后,根据客户端的数据做出响应并将反馈信息发送至kafka代理服务,当客户端首次通过kafka代理服务访问kafka服务时,kafka代理服务将反馈信息的元数据中的发布域名修改为客户端发出的访问请求中的链路服务端IP,并将元数据中的端口改为kafka代理服务的代理端口,然后将修改后的反馈信息转发给客户端,客户端根据修改后的元数据访问kafka服务器;当客户端非首次通过kafka代理服务访问同一kafka服务时,kafka代理服务接收到来自kafka服务器的反馈信息后,对反馈信息中的数据是否为元数据进行判断,如果反馈信息中的数据为元数据,则kafka代理服务将反馈信息的元数据中的发布域名修改为客户端发出的访问请求中的链路服务端IP,并将元数据中的端口改为kafka代理服务的代理端口,然后将修改后的...

【专利技术属性】
技术研发人员:苑海林张森柏建冈
申请(专利权)人:北京华御数观科技有限公司
类型:发明
国别省市:

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

1