kafka踩坑:kafka内网地址nat后,consumer无法消费问题,及解决方案

本文介绍了一种跨网段环境下Kafka数据读取遇到的问题及其解决方案。通过对Kafka源码进行局部修改的方式,实现了从NAT转换后的地址成功获取数据,解决了因网络限制导致的数据读取失败问题。

一、项目背景

       业务提了个需求,需要实时拿总部系统数据,结合本部数据做成标签数据,用来分析。本来是有两种方案的,第一种总部把实时数据推给我们,第二种是他们推到自己的实时集群kafka上,我们去消费。领导们讨论出来的方案是用第二种,为啥,咱也不好问。。然后我们这边决定用flink实时消费他们的kafka数据,写到我们自己集群的kafka上。。。

二、问题描述

        因为总部kafka在他们的内网,不会直接开墙让我们连,他们那边做了一层网络nat,把nat后的一段ip开了墙让我们访问。上线之前是验证过的,网络是通的,但是真正起应用的时候,一直连接不上,具体错误如下:

org.apache.kafka.clients.consumer.internals.AbstractCoordinator [consumer clientId=...,groupid=...] connection to node 192.168...:9092  could not be established. Broker may not be available.

        这时就发现你配置的 bootstrap.servers地址是nat后的,但是报错的却是nat之前的原地址。因为没开墙,导致真正读数据的时候一直连不上。

        简单的说下网络图:

总部kafka原地址(有墙)          NAT后地址(开墙了)               本部flink

ip1 -------------------------------------> n_ip1 -------------------------------------> yarn

ip2 -------------------------------------> n_ip2 -------------------------------------> yarn

ip3 -------------------------------------> n_ip3 -------------------------------------&g

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值