kafka集群内外网分流方案——筑梦之路

前言

在现代分布式系统架构中,Kafka作为一款高性能的消息队列系统,广泛应用于大数据处理、实时流处理以及微服务间的异步通信场景。特别是往往企业级应用中,业务网段和内网通信网段不是同一个网段,内网的机器想要访问业务数据只能基于现有业务网卡的机器才能访问,此时想要kafka集群内外网都可以通信,即内网的走内网IP,外网的走外网ip,互不影响,同时,也要确保集群内部通信高效、安全,充分利用内网资源,避免不必要的外网流量消耗。就需要引入kafka的listener.security.protocol.map配置项,可以设置两个不同的侦听器,分别对应内网IP和外网IP。PLAINTEXT则表示使用明文协议进行通信,虽然简单但足够直观地展示了如何区分内外网流量的处理方式。通过这样的配置,Kafka能够清晰地区分请求来源,内网通信利用高效的内网IP进行,保证了数据传输速度和安全性,而外网业务请求则通过外网IP接口接入,实现了内外网的逻辑隔离和资源优化。

系统拓扑

 上图中的kafka集群有两张网卡,需要内网段192.168.88.0/24访问,也需要外网段192.168.100.0/24访问,如何实现内外网分流?

实现过程

1. 配置kafka

(关键部分)

vim config/server.properties

listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
# 配置监听内外网地址
listeners=INTERNAL://192.168.88.12:9092,EXTERNAL://192.168.100.104:19092
# 
advertised.listeners=INTERNAL://192.168.88.12:9092,EXTERNAL://192.168.100.104:19092 

inter.broker.listener.name=INTERNAL

2. 验证测试

分别在内外网进行验证测试,这里省略。

3. NAT模式下配置

上面用到的Kafka的两个配置参数,一个是listeners,用于指定当前节点监听本机的哪个IP地址,另一个是advertised.listeners,用于指定客户端可以通过哪个IP访问到当前节点。假设机器没有外网网卡(即上服务器是没有eth1网卡的),外网通信地址基于转发或映射出来的IP,那么,我们的Kafka配置就应该改成这样配置。

listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
listeners=INTERNAL://192.168.88.12:9092,EXTERNAL://192.168.88.12:19092
advertised.listeners=INTERNAL://192.168.88.12:9092,EXTERNAL://192.168.100.104:19092
inter.broker.listener.name=INTERNAL

 参考资料:

https://juejin.cn/post/6893410969611927566

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/676770.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

考研人注意了:六月份保底进度+复习规划!

六月开始准备考研确实有点晚了,因为大家基本上上都是3月份开始的 开始的比别人晚,学习的时间就会比较紧张,但是不要怕,考研并不是比谁学的时间长,而是比谁学的效果好,就算是六月份开始,只要学习…

三、基于图像分类预训练编码及图神经网络的预测模型 【框图+源码】

背景: 抽时间补充,先挖个坑。 一、模型结构 二、源码

python结构化模式匹配switch-case,Python 3.10中引入,Python的模式匹配(pattern matching)语法

增加了采用模式加上相应动作的 match 语句 和 case 语句 的形式的结构化模式匹配。 模式由序列、映射、基本数据类型以及类实例构成。 模式匹配使得程序能够从复杂的数据类型中提取信息、根据数据结构实现分支,并基于不同的数据形式应用特定的动作。 语法与操作 模…

系统安全及应用11

一个新的服务器到手之后,部署服务器的初始化 1、配置IP地址 网关 dns解析(static)内网和外网 2、安装源外网(在线即可),内网(只能用源码包编译安装) 3、磁盘分区,lvm …

coze自定义插件调用3

1,打开我的空间; 2,编辑,选择快捷指令 3,编辑指令 4,实际测试【输入框多了一个按钮“查询基础信息”,点击查询基础信息,提示输入缴费卡号,提交后如下图】

插入排序(直接插入排序与希尔排序)----数据结构-排序①

1、插入排序 1.1 插入排序的基本思想 将待排序的元素按其数值的大小逐个插入到一个已经排好序的有序序列中,直到所有的元素插入完为止,就可以得到一个新的有序序列 。 实际上在我们的日常生活中,插入排序的应用是很广泛的,例如我…

从墙的功能出发 -分析欧特克Revit和广联达数维的差别

欧特克(Autodesk)在三维建模软件领域的影响力是有目共睹的,它是行业的头部产商,拥有众多的高质量的三维设计软件,涵盖了建筑设计、机械设计与制造和电影文娱行业。Revit是其发布的建筑三维建模软件,也是BIM…

老黄自己卷自己!GPU要一年更新一代!预告新动作:AI工厂将吞噬一切

站在 AI 时代风口浪尖的弄潮儿英伟达又为大家带来了一场科技饕餮盛宴! 昨晚 7 点,坐标中国台湾大学体育场,英伟达 CEO 黄仁勋为世界带来了一场名为 The Dawn of a New Industrial Revolution (揭开新工业革命序幕)的演…

IDEA 常用技巧

1、代码块整体移动 选中,tab整体右移选中,shifttab整体左 移 2、统一修改变量 3.方法分割线 seting >> editor >> apperance >> show method separators 4、快捷键 构造器、set与get方法、方法重写、toString 等快捷操 鼠标停留在…

微信公众号开发(五):私信日志记录

之前的开发内容里,基本是基本配置和回复设置,为了之后看用户/粉丝什么样的功能使用的最多,需要增加私信的日志记录: 1、日志表 首先,要在mysql里建表 主要字段:用户id、公众号id、时间、私信类型、私信内…

SQL Developer 小贴士:备份和恢复连接信息

问题与概念 有时候SQL Developer需要重装,能备份和恢复连接信息就比较重要。 SQL Developer提供连接的导出和导入功能。 导出连接 第一步:选择连接。 第2步:指定输出文件,例如sqldconns.json 第3步:因为连接中可…

一文读懂数据库中的DB、DBMS、DBS、DBAS

目前数据库的应用非常广泛,几乎各行各业都在直接或间接地与数据库打交道,例如网上购物、银行业务、铁路购票和酒店住宿等。在实际应用中,数据库、数据库管理系统、数据库系统和数据库应用系统经常被统称为数据库,而实质上这4个概念是不一样的,它们具有不同的定义和含义。下…

16.FreeRTOS直接任务通知 Notification

FreeRTOS 直接任务通知 Notification 介绍 在嵌入式系统开发中,任务间的通信和同步是非常重要的一部分。而FreeRTOS就提供了多种机制来实现这些,比如队列、信号量和事件组。不过,使用这些机制都需要创建一个通信对象,不能直接把事…

【Unity Shader入门精要 第10章】高级纹理(一)

1. 立方体纹理原理 立方体纹理由6张图片组成,每张图片分别对应立方体的一个面。这6张图片代表沿世界空间下的轴线(上下左右前后)观察所得的图像 立方体的应用主要分为两类: 单纯利用6张图片的展示功能,为我们提供一…

怎么下载 jar 包

一、在Maven仓库里面下载 Maven仓库 网址:https://mvnrepository.com/ 二、搜索需要的 jar 包(以 druid 为例) 三、找到 druid jar包,点进去 四、找到自己需要的版本,点进去 五、 点 jar 下载

数字化前沿:Web3如何引领未来技术演进

在当今数字化时代,随着技术的不断发展和创新,Web3作为一种新兴的互联网范式,正逐渐成为数字化前沿的代表。Web3以其去中心化、加密安全的特性,正在引领着未来技术的演进,为全球范围内的科技创新带来了新的可能性和机遇…

第二讲笔记:隐私计算助力数据要素流通

1、数据要素流转与数据 2、数据外循环中的信任 焦虑 信任焦虑背后的代表性案例 内鬼门 : 2023 年 , 美国科技公司 Ubiquiti在2021年1月曝出数据泄露事 件, “攻击者”在随后的“谈判”中试 图向该企业勒索近200万美元(50比特 币&…

.Net Core Console 项目如何使用 HttpClient 与 Web 服务通信

前言 HttpClient 类是在 .NET Framework 4.5 和 .NET Core 中引入的新的 HTTP 客户端类,是 .NET 用于发送和接收 HTTP 请求的类,相比之前的 WebRequest 和 HttpWebRequest, 它提供了现代的、易用的 API,并且具有更好的性能和扩展…

【Spring Cloud】微服务链路跟踪Sleuth

目录 为什么要使用微服务链路跟踪微服务的现状多服务协同工作复杂的调用链条容易出错 微服务链路跟踪需要实现的需求实现监控决策避免技术债务快速定位故障 微服务链路跟踪的技术要求低消耗应用透明延展性可控采样率可视化 Spring Cloud Sleuth简介Spring Cloud Sleuth的4个特点…

‘yarn’不是内部或外部命令,也不是可运行的程序或批处理文件。

目录 问题点 解决方式 # 安装 # 版本 # 本地发生变化(了解) # 安装项目依赖 新问题 解决方式 问题点 在vscode中,点击dev运行,项目报错【Q1】 * 正在执行任务: yarn run dev yarn : 无法将“yarn”项识别为 cmdlet、函数…