Kafka的灵魂伴侣Logi-KafkaManger(1)之集群的接入及相关概念讲解

简介: Kafka的灵魂伴侣Logi-KafkaManger(1)之集群的接入及相关概念讲解

提示:本文可能已过期,请点击原文查看:Kafka的灵魂伴侣Logi-KafkaManger(1)之集群的接入及相关概念讲解

在阅读此文前,您可以先按照文档 KnowStreaming的部署. 自己搭建一下项目;

那么运维管理人员搭建好了平台之后,接下来要做什么呢?

正文

阅读完本文,你讲了解到以下内容

  • [x] 接入集群步骤
  • [x] Region、逻辑集群、物理集群 等相关概念
  • [x] Topic的申请流程

接下来第一步肯定就是接入现有kafka集群了; 那么本篇文章就来讲解一下 集群的接入;

接入集群

在这里插入图片描述
参数描述

参数 描述
数据中心 默认国内; 这个也只是一个划分数据的维度,这个应该是滴滴内部有多个数据中心的缘故
集群类型 无效,后续会去掉
安全协议 TODO
JMX认证 JMX的认证鉴权, 如果kafka没有开认证的话就不需要填写 3、解决方法 —— 认证的JMX

JMX端口记得要开起来,不然很多数据会没有 JMX-连接失败问题解决

接入成功之后可以看见接入的物理集群; 列表中展示了一些基本信息 ,可能会有一分钟的延迟
在这里插入图片描述

### 基本信息展示
在这里插入图片描述
点进刚刚接入的集群可以有很多集群信息的展示; 这些放在后面去讲,我们着重讲解一下两个模块 Region信息逻辑集群信息

创建Region和逻辑集群

在这之前. 我们先去了解一下官方的相关概念 Logi-KafkaManager主要概念讲解

面对大规模集群、业务场景复杂的情况。引入Region逻辑集群的概念
这也是滴滴在长期实践沉淀下来的经验。

在这里插入图片描述

Region: 划分部分Broker作为一个 Region,用Region定义资源划分的单位,提高扩展性和隔离性。如果部分Topic出现异常也不会影响大面积的Broker。比如,右图中,将部分Broker划分为一个Region,当某个Topic发送异常时,影响范围就会被限制在它所属的Region里。

逻辑集群: 将部分Region划分为逻辑集群,便于对大规模集群按照业务划分、保障能力的划分。

我们来举几个显示场景的例子;

对于小规模集群来说:

一般可能也就只部署了一套kafka的物理集群; 一套kafka集群可能也就3~5个broker; 所有业务公用一套集群; 对于这样的场景来说,也就没有必要那么复杂的 化分 Region逻辑集群我们可以直接让 Region = 逻辑集群 = 物理集群;

创建Region
在这里插入图片描述
PS: 这里的状态下拉还有一个 磁盘已满 的选项; 这里先忽略他的作用,直接填写正常就行;
在这里插入图片描述

创建逻辑集群(逻辑集群需要先有配置Region)
在这里插入图片描述
逻辑集群标识: 作为逻辑集群的唯一标识;
RegionIdList: 选择Region列表,比如刚刚我们创建好的common_region 出现在下拉框中;我们选择这个Region;

集群类型:

**独享集群:** 在物理集群中为某一应用单独划分部分Region作为独享集群。只能该应用使用。
**独立集群:** 为某一应用部署单独的物理集群。只能该应用使用。
**共享集群:** 划分部分Region作为共享集群。所有应用皆可使用。

对于小集群来说; 我们选择共享集群就可以了 因为其他模式是需要绑定到具体应用的;

中大规模集群如何划分好Region和逻辑集群

我们假设一个场景; 某个企业 kafka 有N个物理集群; 其中有一个共享的物理集群 broker=20;
公司研发部门的所有应用都接入到了这个集群中 ; 正常情况下他们是这样的
在这里插入图片描述

那么在KafkaManager中曾加了Region和逻辑集群的概念之后; 可以这样子划分;
在这里插入图片描述
这样划分好了之后, 各个业务线中的Topic申请的时候就,运维管理员审核的时候就根据研发人员所填信息,然后进行Region的分配;

这样划分之后有几个明显的好处:

  1. 隔离性 不同应用的Topic散落到的Broker更集中; 同时也可以减少Broker之间的通信; 假如一个应用App-1接入的所有Topic,都在这20个Broker有分区; (例如TopicA分区到了123,TopicB分区到了456...); 那么这种情况下,应用App-1在发送的时候是不是需要跟这20个Broker都有通信; 那么假如App-1的所有Topic的创建都只在Broker 1,2,3中,那么这个连接数就会减少
  2. 集群稳定性 避免小部分异常扩展到更大范围的异常,比如某个Broker不可用,那么影响的的范围会被控制在这个Broker所属的Region中的系统;
  3. 运维友好性 运维对于整个集群有了更清晰的了解和更有力的掌控; 根据业务划分、保障等级等来划分逻辑集群; 然后可以有针对性的做一些伸缩扩容等操作;

划分好region和逻辑集群之后, 接下来的操作;就是 用户管理 应用申请 Topic申请

创建一个普通用户

运维管理员新建一个普通用户角色的用户;
在这里插入图片描述
普通用户 可以登录系统做一下应用申请 Topic申请等操作

普通用户登录账户后, 申请一下自己的系统
在这里插入图片描述
运维管理员审核通过之后
在这里插入图片描述

.

普通用户申请Topic

在这里插入图片描述

普通用户申请Topic的时候 会选择指定的逻辑集群; 和Topic归属于哪个应用; 运维管理人员会根据逻辑集群 和所属应用 来帮你划分好Topic最终会落在哪个Region或者Broker中;

峰值流量: 指的是Topic的最大生产/消费速率
在这里插入图片描述

其实这里只是一个展示项; 普通用户创建Topic的时候自己评估最大的生产速率是多少, 运维人员根据这个速率对这个Topic进行分区,如果速率大一点可能分配的分区数也更多一点; 那么 填写的速率和 分区数应该怎么对于起来呢?这就需要用户自身来评判了, 毕竟每台Broker的性能配置啥的都不一样;
比如: 普通用户创建Topic的时候预估了一下,这个topic一条消息102kb; 最大峰值的时候可能每秒会产生10000条数据;
那么峰值流量就是 102kb*10000/s就约等于1000Mb/s了; 假如运维人员根据自己的经验或者压测结果得知一台XX配置的服务器最大写入速率在300MB/s; 那么运维人员审核的时候就知道该topic至少要4台这样配置的broker;

注意:这里并不是真正设置限流的地方; 只是作为一个分配分区数的参考值; 并没有把配额信息写入到zk中
那么哪里可以去设置Topic的生产/消费的限流呢?

运维人员审核Topic

运维人员根据自身对Kafka集群的划分,选择对应的Region或者Broker
比如 这个topic是归属于系统a的,刚刚我们划分的时候把它划分给了Region1中;那么审核的时候选择对应的Region;当然也可以直接指定Broker;

在这里插入图片描述

Topic审核通过之后, 就会去选中的Broker中create对应的Topic; 这样Topic的创建被KM管理了之后,就会限定在指定的Region或者Broker中了;

PS: 只是在平台创建Topic的时候会被限制在指定的Broker中; 但是如果你直接用kafka提供的工具去创建Topic或者开启了Broker的自动创建Topic功能, 那还是不会被限制在我们的Broker中的; 所以建议关闭Broker中的的自动创建Topic功能;

参考资料

集群接入

kafka中的配额管理(限速)机制

相关文章
|
2月前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
104 4
|
3月前
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
123 2
|
11天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
15天前
|
消息中间件 存储 Kafka
2024最全Kafka集群方案汇总
Apache Kafka 是一个高吞吐量、可扩展、可靠的分布式消息系统,广泛应用于数据驱动的应用场景。Kafka 支持集群架构,具备高可用性和容错性。其核心组件包括 Broker(服务器实例)、Topic(消息分类)、Partition(有序消息序列)、Producer(消息发布者)和 Consumer(消息消费者)。每个分区有 Leader 和 Follower,确保数据冗余和高可用。Kafka 2.8+ 引入了不依赖 Zookeeper 的 KRaft 协议,进一步简化了集群管理。常见的集群部署方案包括单节点和多节点集群,后者适用于生产环境以确保高可用性。
41 0
|
2月前
|
消息中间件 存储 Prometheus
Kafka集群如何配置高可用性
Kafka集群如何配置高可用性
|
2月前
|
消息中间件 存储 负载均衡
Apache Kafka核心概念解析:生产者、消费者与Broker
【10月更文挑战第24天】在数字化转型的大潮中,数据的实时处理能力成为了企业竞争力的重要组成部分。Apache Kafka 作为一款高性能的消息队列系统,在这一领域占据了重要地位。通过使用 Kafka,企业可以构建出高效的数据管道,实现数据的快速传输和处理。今天,我将从个人的角度出发,深入解析 Kafka 的三大核心组件——生产者、消费者与 Broker,希望能够帮助大家建立起对 Kafka 内部机制的基本理解。
93 2
|
3月前
|
消息中间件 分布式计算 监控
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
118 6
|
3月前
|
消息中间件 存储 分布式计算
大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败
大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败
45 4
|
3月前
|
消息中间件 NoSQL Kafka
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
83 5
|
3月前
|
消息中间件 存储 分布式计算
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
94 4

热门文章

最新文章