CN115174675A - 一种kafka服务访问方法 - Google Patents
一种kafka服务访问方法 Download PDFInfo
- Publication number
- CN115174675A CN115174675A CN202210767439.1A CN202210767439A CN115174675A CN 115174675 A CN115174675 A CN 115174675A CN 202210767439 A CN202210767439 A CN 202210767439A CN 115174675 A CN115174675 A CN 115174675A
- Authority
- CN
- China
- Prior art keywords
- kafka
- service
- client
- feedback information
- proxy
- 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.)
- Granted
Links
Images
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服务的启动过程中,需要配置以下参数:
“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 (4)
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代理服务的代理端口,然后将修改后的反馈信息转发给客户端,如果反馈信息中的数据不是元数据,则直接将反馈信息全部转发给客户端,客户端接收到该反馈信息后对该反馈信息进行判断,如果反馈信息中包含有客户端所需要的最终数据,则终止访问,反之,客户端则需要继续通过kafka代理服务访问kafka服务,直至反馈信息中所包含的数据为客户端所需要的最终数据,在客户端继续通过kafka代理服务访问kafka服务时,客户端通过反馈信息中最新的被修改的元数据访问kafka服务;访问结束后,客户端断开与kafka代理服务之间的连接,kafka代理服务断开与kafka服务之间的连接。
2.根据权利要求1所述的kafka服务访问方法,其特征在于,在客户端与kafka代理服务建立连接前,对kafka代理服务的端口进行设置,并对kafka服务的端口进行设置,kafka代理服务通过kafka服务的端口访问kafka服务。
3.根据权利要求2所述的kafka服务访问方法,其特征在于,当多个客户端通过同一个kafka代理服务访问同一个kafka服务时,kafka代理服务中设有kafka代理服务的端口与kafka服务的端口映射关系。
4.根据权利要求1所述的kafka服务访问方法,其特征在于,kafka服务在启用前对发布域名进行设置。
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 true CN115174675A (zh) | 2022-10-11 |
CN115174675B 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 (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030065950A1 (en) * | 2001-09-28 | 2003-04-03 | Yarborough William Jordan | Secured FTP architecture |
US20120324113A1 (en) * | 2011-04-19 | 2012-12-20 | Matthew Browning Prince | Registering for internet-based proxy services |
US20160266801A1 (en) * | 2013-05-10 | 2016-09-15 | Fondo De Información Y Documentación Para La Industria Infotec | A High Performance System and Method for Data Processing and Storage, Based on Low Cost Components, Which Ensures the Integrity and Availability of the Data for the Administration of Same |
CN106331200A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | 一种节点间数据传输的方法、网关节点及节点 |
CN110830434A (zh) * | 2019-08-27 | 2020-02-21 | 杭州美创科技有限公司 | 通用透明代理方法 |
CN112272158A (zh) * | 2020-09-16 | 2021-01-26 | 厦门网宿有限公司 | 一种数据代理方法、系统及代理服务器 |
CN112804343A (zh) * | 2021-01-28 | 2021-05-14 | 杉德银卡通信息服务有限公司 | 分布式服务治理方法及其系统、计算机可读介质 |
CN112968965A (zh) * | 2021-02-25 | 2021-06-15 | 网宿科技股份有限公司 | Nfv网络节点的元数据服务方法、服务器及存储介质 |
CN113261259A (zh) * | 2018-12-18 | 2021-08-13 | 华为技术有限公司 | 用于透明会话切换的系统和方法 |
CN113381979A (zh) * | 2021-05-12 | 2021-09-10 | 网宿科技股份有限公司 | 一种访问请求代理方法及代理服务器 |
-
2022
- 2022-06-30 CN CN202210767439.1A patent/CN115174675B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030065950A1 (en) * | 2001-09-28 | 2003-04-03 | Yarborough William Jordan | Secured FTP architecture |
US20120324113A1 (en) * | 2011-04-19 | 2012-12-20 | Matthew Browning Prince | Registering for internet-based proxy services |
US20160266801A1 (en) * | 2013-05-10 | 2016-09-15 | Fondo De Información Y Documentación Para La Industria Infotec | A High Performance System and Method for Data Processing and Storage, Based on Low Cost Components, Which Ensures the Integrity and Availability of the Data for the Administration of Same |
CN106331200A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | 一种节点间数据传输的方法、网关节点及节点 |
CN113261259A (zh) * | 2018-12-18 | 2021-08-13 | 华为技术有限公司 | 用于透明会话切换的系统和方法 |
CN110830434A (zh) * | 2019-08-27 | 2020-02-21 | 杭州美创科技有限公司 | 通用透明代理方法 |
CN112272158A (zh) * | 2020-09-16 | 2021-01-26 | 厦门网宿有限公司 | 一种数据代理方法、系统及代理服务器 |
CN112804343A (zh) * | 2021-01-28 | 2021-05-14 | 杉德银卡通信息服务有限公司 | 分布式服务治理方法及其系统、计算机可读介质 |
CN112968965A (zh) * | 2021-02-25 | 2021-06-15 | 网宿科技股份有限公司 | Nfv网络节点的元数据服务方法、服务器及存储介质 |
CN113381979A (zh) * | 2021-05-12 | 2021-09-10 | 网宿科技股份有限公司 | 一种访问请求代理方法及代理服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN115174675B (zh) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9888066B2 (en) | System and method of binding a client to a server | |
US7228359B1 (en) | Methods and apparatus for providing domain name service based on a client identifier | |
US7415536B2 (en) | Address query response method, program, and apparatus, and address notification method, program, and apparatus | |
US7398382B2 (en) | Method and apparatus to enhance platform boot efficiency | |
US7720906B2 (en) | Web service for remote application discovery | |
CN110377438B (zh) | 跨进程通信接口的路由方法、装置和系统 | |
US20100030880A1 (en) | Failover in proxy server networks | |
US20040006586A1 (en) | Distributed server software distribution | |
US11856065B2 (en) | Data transmission for service integration between a virtual private cloud and an intranet | |
US20210400107A1 (en) | Method, device and system for downloading data block of resource file | |
US7590713B2 (en) | Presenting a merged view of remote application shortcuts from multiple providers | |
WO2009062414A1 (en) | Integrate client and method of desktop application communicating with net web application | |
JP5753629B2 (ja) | モバイルブロードバンドデバイスを管理する方法、デバイス及びシステム | |
JP2012525659A (ja) | ウェブソケット通信の分散エミュレーションを通してウェブアプリケーションサポートを提供する企業クライアント/サーバーシステム及び方法 | |
CN112738184B (zh) | 一种插件式动态注册分布式微服务网关系统 | |
CN113452686A (zh) | 数据处理方法、装置、代理服务器及存储介质 | |
US20030033412A1 (en) | Seamless fail-over support for virtual interface architecture (VIA) or the like | |
US20060080443A1 (en) | URL namespace to support multiple-protocol processing within worker processes | |
US20020007410A1 (en) | Scalable java servers for network server applications | |
CN113992738A (zh) | 基于微服务网关的反向代理方法、装置、设备及存储介质 | |
CN114205402A (zh) | 连接建立方法、系统、设备和存储介质 | |
CN108874472B (zh) | 一种用户头像的优化显示方法及系统 | |
US20050002342A1 (en) | Method and arrangement for configuration of a device in a data network | |
US9086939B2 (en) | Reactivation of a software image from a source machine onto a target machine | |
CN115174675A (zh) | 一种kafka服务访问方法 |
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 |