apache-kafka - 什么是卡夫卡经纪人?
问题描述
一个kafka集群由多个broker组成。
Q1。单个 kafka 代理在物理上是什么样子的,它是机器/PC/节点吗?
Q2。如果它是一个节点,那么为什么它被明确命名为 kafka 代理,因为 kafka 集群应该足够了?说一个kafka集群,就这样?
Q3。为什么会有 kafka 代理的概念,为什么我们没有一个 kafka 集群,如果我们想要扩展,那么为什么不在集群上添加更多节点或更多硬件呢?
解决方案
- Kafka 代理是一个逻辑过程,而不是一个物理实体。它可以在物理机或虚拟机中运行,也可以在容器中运行。尽管有些人可能会互换使用术语经纪人和节点。但是,就定义而言,节点通常是物理实体、机器或虚拟机,但代理是进程。我们也可以在一个物理节点上运行多个代理。
- 一个节点代表集群中的一个实体。一个 Kafka 集群由多个 Kafka 代理(从 1 个到多个)组成。如果是单个broker集群,那么我们仍然可以称它为Kafka集群或者简称为Kafka broker。虽然,有时当人们说 Kafka 集群时,他们的意思是运行 Kafka 所需的一切,也包括 Zookeeper 集群。
- 添加更多节点是一种扩展方式,但仅添加物理节点是不够的,我们需要在其中运行 Kafka 代理进程,然后才能在 Kafka 代理之间分配负载。人们只使用由许多代理组成的单个 Kafka 集群。一些组织还可能维护多个 Kafka 集群,最常见的是用于冗余。
推荐阅读
- sql - 如何在postgres表中获取包含某些文本的随机行
- html - React SVG Manipulation [Electron](如果连接了 DB,则更改颜色)
- python - 如何在 python 包中使用 tensorflow 1.14.0 并在 Dockerfile 中运行它?
- c# - C# 中的简单 char[] 赋值
- jms - MDB 何时确认 JMS 队列以读取消息
- java - 如何将会话从验证器 POST 请求转发到 JAVA 中的 GET 请求?
- c# - Telerik RadGridView 的 IDataErrorInfo 验证
- python - 如何从python的列表中删除包含特定字符的字符串
- sql-server - 如何处理并发问题?
- python - 从 dict 和 list 生成数据框的最简单方法