CN115174675B - 一种kafka服务访问方法 - Google Patents

一种kafka服务访问方法 Download PDF

Info

Publication number
CN115174675B
CN115174675B CN202210767439.1A CN202210767439A CN115174675B CN 115174675 B CN115174675 B CN 115174675B CN 202210767439 A CN202210767439 A CN 202210767439A CN 115174675 B CN115174675 B CN 115174675B
Authority
CN
China
Prior art keywords
kafka
service
client
proxy
proxy service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210767439.1A
Other languages
English (en)
Other versions
CN115174675A (zh
Inventor
苑海林
张森
柏建冈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huayu Shuguan Technology Co ltd
Original Assignee
Beijing Huayu Shuguan Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Huayu Shuguan Technology Co ltd filed Critical Beijing Huayu Shuguan Technology Co ltd
Priority to CN202210767439.1A priority Critical patent/CN115174675B/zh
Publication of CN115174675A publication Critical patent/CN115174675A/zh
Application granted granted Critical
Publication of CN115174675B publication Critical patent/CN115174675B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开一种kafka服务器访问方法,客户端以kafka代理服务为媒介访问kafka服务,其中,客户端访问kafka代理服务,kafka代理服务将客户端的数据转发至kafka服务,kafka服务对客户端数据进行反馈,kafka代理服务将反馈信息中元数据的发布域名修改为客户端数据中的链路服务端IP,将元数据中的端口改为kafka代理服务的代理端口,而客户端通过修改后的元数据访问kafka服务。本发明中访问kafka服务器的客户端无需配置域名解析即可实现对kafka服务器的访问。

Description

一种kafka服务访问方法
技术领域
本发明涉及kafka代理技术领域。具体地说是一种kafka服务访问方法。
背景技术
kafka做为一个高性能的消息处理器,近年来获得越来越多的应用。但是在kafka服务的启动过程中,需要配置以下参数:
“advertised.listeners=PLAINTEXT://kafka.hysgkafka.com:9092”,客户端访问kafka服务时,需要分两步,第一次访问,kafka服务返回包含该参数的元数据给客户端,客户端接收到元数据后,根据元数据里面提供的信息,再次访问kafka,才能获得正确结果。根据以上特征,该配置项传统的配置方式有两种,但各有优缺点,如下所述:
(1)如果advertised.listeners配置中,其域名部分如果是一个域名(如advertised.listeners=PLAINTEXT://kafka.hysgkafka.com:9092),而不是ip的情况下,kafka服务不受ip地址变更的影响,ip地址发生变化时,不需要修改kafka的配置文件,也不需要重启kafka服务,且kafka服务器存在多个ip的情况下,多个ip可以用同一个端口对外提供服务,不足之处是客户端访问kafka服务时,需要通过本地hosts文件或者dns域名服务器,对此域名做解析才能正确访问kafka服务,但在实际应用中,由于很多产品是软硬件一体,不允许通过操作系统后台来配置该域名解析,导致此种情况下这些产品无法访问kafka服务。
(2)如果advertised.listeners配置中,其域名部分是一个ip地址,而不是一个域名(如前述域名)的情况下,那么如果ip地址发生变化,则需用重新修改kafka的配置文件,且需要重新启动kafka服务。并且,此种配置方式,如果服务器存在多个ip,要想每个ip都能提供服务,则需要绑定多个端口,也给kafka的配置增加了难度。
发明内容
为此,本发明所要解决的技术问题在于提供一种kafka服务器访问方法,访问kafka服务器的客户端无需配置域名解析即可实现对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,并将元数据中的端口改为kafka代理服务的代理端口,然后将修改后的反馈信息转发给客户端,如果反馈信息中的数据不是元数据,则直接将反馈信息全部转发给客户端,客户端接收到该反馈信息后对该反馈信息进行判断,如果反馈信息中包含有客户端所需要的最终数据,则终止访问,反之,客户端则需要继续通过kafka代理服务访问kafka服务,直至反馈信息中所包含的数据为客户端所需要的最终数据,在客户端继续通过kafka代理服务访问kafka服务时,客户端通过反馈信息中最新的被修改的元数据访问kafka服务;访问结束后,客户端断开与kafka代理服务之间的连接,kafka代理服务断开与kafka服务之间的连接。
上述kafka服务器访问方法,在客户端与kafka代理服务建立连接前,对kafka代理服务的端口进行设置,并对kafka服务的端口进行设置,kafka代理服务通过kafka服务的端口访问kafka服务。
上述kafka服务器访问方法,当多个客户端通过同一个kafka代理服务访问同一个kafka服务时,kafka代理服务中设有kafka代理服务的端口与kafka服务的端口映射关系。
上述kafka服务器访问方法,kafka服务在启用前对发布域名进行设置。
本发明的技术方案取得了如下有益的技术效果:
1.kafka服务启动后,如果IP地址发生变化,不需要重新配置kafka服务,也不需要重新启动kafka服务
2.多个ip可以绑定到同一个端口,无需每个ip绑定一个端口
3.客户端访问kafka服务时,不需要在客户端做域名解析,对于那些无法做域名解析的客户端,使之能够顺利访问kafka服务。
附图说明
图1为本发明kafka服务访问方法的流程图;
图2为kafka服务配置结果;
图3为客户端通过kafka代理服务访问kafka服务的结果反馈图;
图4为连接kafka服务的验证图。
具体实施方式
下面结合示例,针对本发明进行进一步说明。
如图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,并将元数据中的端口改为kafka代理服务的代理端口,然后将修改后的反馈信息转发给客户端,如果反馈信息中的数据不是元数据,则直接将反馈信息全部转发给客户端,客户端接收到该反馈信息后对该反馈信息进行判断,如果反馈信息中包含有客户端所需要的最终数据,则终止访问,反之,客户端则需要继续通过kafka代理服务访问kafka服务,直至反馈信息中所包含的数据为客户端所需要的最终数据,在客户端继续通过kafka代理服务访问kafka服务时,客户端通过反馈信息中最新的被修改的元数据访问kafka服务;访问结束后,客户端断开与kafka代理服务之间的连接,kafka代理服务断开与kafka服务之间的连接。
在客户端通过kafka代理服务访问kafka服务后,如果kafka服务的IP发生变化时,由于客户端是访问的kafka代理服务,而非直接访问的kafka服务,且kafka代理服务在向客户端转发来自kafka服务的信息数据时,会将信息数据的元数据中的发布域名和端口进行修改,修改后元数据中的发布域名和端口与客户端发送访问请求中的发布域名和端口相同,即便是kafka服务的advertised.listeners配置中的域名部分是一个域名而非IP或者是一个IP而非域名时,IP地址变化时,在kafka服务不重新启动的情况下,客户端通过kafka代理服务对kafka服务的访问都不受影响。
在客户端与kafka代理服务建立连接前,对kafka代理服务的端口进行设置,同时将kafka代理服务与kafka服务进行绑定。
在启用kafka服务前,对其listeners与advertised.listeners项进行设置,例如进行如下配置:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://kafka.hysgkafka.com:9092。
在对kafka服务的listeners与advertised.listeners项进行设置后的结果如图2所示,kafka服务所用服务器的IP地址为192.168.80.203,采用的操作系统为Linux操作系统,kafka代理服务端口为19092,kafka服务端口为9092,kafka服务的发布域名为:kafka.hysgkafka.com,kafka服务和kafka代理服务部署在同一台机器上。
当客户端通过kafka代理服务与kafka服务连通后,客户端将访问kafka代理服务的访问请求通过kafka代理服务的端口(例如端口:19092)发送至kafka代理服务,kafka代理服务对访问请求进行解析并获得该访问请求的kafka代理服务服务端的IP(serverIP),然后kafka代理服务新开设一个连接与kafka服务连通,并将从客户端接收的数据不做处理直接全部转发至kafka服务,kafka服务在收到kafka代理服务转发的客户端的数据后对来自客户端的数据进行解析,并根据解析结果做出反馈并将反馈信息发送至kafka代理服务,kafka代理服务收到反馈信息后对反馈信息进行解析,当反馈信息中的数据为元数据时,将元数据中的发布域名(此例中为kafka.hysgkafka.com)修改为客户端所要访问的kafka代理服务的链路服务端IP,将元数据中的端口(例如端口:9092)修改为kafka代理服务的代理端口(19092),然后将包含有修改后的元数据的反馈信息转发给客户端,客户端根据修改后的元数据对kafka服务进行访问,反之,则不对反馈信息进行修改并直接将反馈信息转发给客户端。在这一过程中,客户端无需对kafka服务器发布反馈信息中的发布域名进行修改即可实现对kafka服务顺利访问,即便是IP地址发生变化,也无需重新配置kafka服务,也不需要重新启动kafka服务。
客户端IP为192.168.3.154,客户端采用java语言的api连接kafka代理服务,并从kafka服务处获得信息数据的反馈,如图3所示,而由图中所示内容可以看出,客户端获得了正确结果。
在对连接kafka服务的是客户端还是kafka代理服务进行验证时,在kafka服务上执行命令netstat-aptn|grep 9092,查看连接,从执行结果可以看出,客户端和服务器的连接,都是通过19092端口,说明客户端没有直接和kafka服务连接,而是和kafka代理服务做的连接。而所有和本机9092的连接,源ip和目的ip都是127.0.0.1,说明只有本机的临时端口和9092做连接,说明连接kafka服务的只有kafka代理服务,如图4所示。
而当多个客户端通过kafka代理服务访问同一个kafka服务时,kafka代理服务中设有kafka代理服务的端口与kafka服务的端口映射关系,此映射关系可以保证每个客户端所获得的反馈信息是与该客户端发出的请求相对应的信息。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本专利申请权利要求的保护范围之中。

Claims (3)

1.一种kafka服务访问方法,其特征在于,在客户端与kafka代理服务建立连接前,对kafka代理服务的端口进行设置,并对kafka服务的端口进行设置,kafka代理服务通过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,并将元数据中的端口改为kafka代理服务的代理端口,然后将修改后的反馈信息转发给客户端,如果反馈信息中的数据不是元数据,则直接将反馈信息全部转发给客户端,客户端接收到该反馈信息后对该反馈信息进行判断,如果反馈信息中包含有客户端所需要的最终数据,则终止访问,反之,客户端则需要继续通过kafka代理服务访问kafka服务,直至反馈信息中所包含的数据为客户端所需要的最终数据,在客户端继续通过kafka代理服务访问kafka服务时,客户端通过反馈信息中最新的被修改的元数据访问kafka服务;访问结束后,客户端断开与kafka代理服务之间的连接,kafka代理服务断开与kafka服务之间的连接;其中,链路服务端IP为kafka代理服务服务端的IP。
2.根据权利要求1所述的kafka服务访问方法,其特征在于,当多个客户端通过同一个kafka代理服务访问同一个kafka服务时,kafka代理服务中设有kafka代理服务的端口与kafka服务的端口映射关系。
3.根据权利要求1所述的kafka服务访问方法,其特征在于,kafka服务在启用前对发布域名进行设置。
CN202210767439.1A 2022-06-30 2022-06-30 一种kafka服务访问方法 Active CN115174675B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210767439.1A CN115174675B (zh) 2022-06-30 2022-06-30 一种kafka服务访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210767439.1A CN115174675B (zh) 2022-06-30 2022-06-30 一种kafka服务访问方法

Publications (2)

Publication Number Publication Date
CN115174675A CN115174675A (zh) 2022-10-11
CN115174675B true CN115174675B (zh) 2023-10-17

Family

ID=83489299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210767439.1A Active CN115174675B (zh) 2022-06-30 2022-06-30 一种kafka服务访问方法

Country Status (1)

Country Link
CN (1) CN115174675B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112272158A (zh) * 2020-09-16 2021-01-26 厦门网宿有限公司 一种数据代理方法、系统及代理服务器
CN112968965A (zh) * 2021-02-25 2021-06-15 网宿科技股份有限公司 Nfv网络节点的元数据服务方法、服务器及存储介质
CN113381979A (zh) * 2021-05-12 2021-09-10 网宿科技股份有限公司 一种访问请求代理方法及代理服务器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308710B2 (en) * 2001-09-28 2007-12-11 Jp Morgan Chase Bank Secured FTP architecture
US9049244B2 (en) * 2011-04-19 2015-06-02 Cloudflare, Inc. Registering for internet-based proxy services
MX2013005303A (es) * 2013-05-10 2013-08-07 Fondo De Informacion Y Documentacion Para La Ind Infotec Un sistema y un proceso de alto desempeño para el tratamiento y almacenamiento de datos, basado en componentes de bajo costo, que garantiza la integridad y disponibilidad de los datos para su propia administracion.
CN106331200A (zh) * 2015-06-30 2017-01-11 华为技术有限公司 一种节点间数据传输的方法、网关节点及节点
WO2020125945A1 (en) * 2018-12-18 2020-06-25 Huawei Technologies Co., Ltd. System and method for transparent session handoff
CN110830434A (zh) * 2019-08-27 2020-02-21 杭州美创科技有限公司 通用透明代理方法
CN112804343A (zh) * 2021-01-28 2021-05-14 杉德银卡通信息服务有限公司 分布式服务治理方法及其系统、计算机可读介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112272158A (zh) * 2020-09-16 2021-01-26 厦门网宿有限公司 一种数据代理方法、系统及代理服务器
CN112968965A (zh) * 2021-02-25 2021-06-15 网宿科技股份有限公司 Nfv网络节点的元数据服务方法、服务器及存储介质
CN113381979A (zh) * 2021-05-12 2021-09-10 网宿科技股份有限公司 一种访问请求代理方法及代理服务器

Also Published As

Publication number Publication date
CN115174675A (zh) 2022-10-11

Similar Documents

Publication Publication Date Title
US6895590B2 (en) Method and system enabling both legacy and new applications to access an InfiniBand fabric via a socket API
US7228359B1 (en) Methods and apparatus for providing domain name service based on a client identifier
US8775651B2 (en) System and method for dynamic adaptation service of an enterprise service bus over a communication platform
US7529823B2 (en) Notifications for shared resources
US20100030880A1 (en) Failover in proxy server networks
US7899047B2 (en) Virtual network with adaptive dispatcher
US6970902B1 (en) Method and apparatus for providing a distributed service in a network
US20030101284A1 (en) Virtual network with adaptive dispatcher
US20080320503A1 (en) URL Namespace to Support Multiple-Protocol Processing within Worker Processes
US7415512B1 (en) Method and apparatus for providing a general purpose computing platform at a router on a network
WO2009062414A1 (en) Integrate client and method of desktop application communicating with net web application
US8572284B2 (en) Method and apparatus for registering a mobile object on a foreign network
TW201541919A (zh) 可縮放位址解析之技術
KR20050010506A (ko) 로컬 연결 변환을 갖는 가상 연결성
US20060047821A1 (en) System, method, and medium for relaying data using socket application program
US20080162644A1 (en) Auto selection of connectors in a middleware framework
CN113163024B (zh) 报文处理方法、服务器及存储介质
CN115174675B (zh) 一种kafka服务访问方法
US6886180B1 (en) Implementing cable modem functions on a host computer
US20050002342A1 (en) Method and arrangement for configuration of a device in a data network
US8539109B1 (en) Third party direct memory access protocol extension to separate data path from control path
US9086939B2 (en) Reactivation of a software image from a source machine onto a target machine
US7805733B2 (en) Software implementation of hardware platform interface
CN114650221A (zh) 一种服务接口快速调用的方法及系统
Cisco Configuring IBM Channel Attach

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant