从图中我们可以看出HA的缓存分为生产缓存事件池和拉取缓存事件池两块结构相同的缓存区,分别缓存生产和拉取请求
2个缓存事件池的作用:
- 生产缓存事件池:当生产者设置了等待从partition的同步选项(requiredAcks为-1)时才会启动生产缓存。因为每一批生产的消息,需要等待所有的处于同步状态的从partition(in-sync)同步成功,在所有follow partition上报自己的水位线追上leader partition之前,生产请求会一直保留在生产缓存中,等待直到超时。
- 拉取缓存事件池:拉取请求为什么也需要缓存?因为kafka在消费消息时有一个默认选项,一次拉取最低消费1条消息。那么,如果消费者拉取的时候没有任何新消息生产,则拉取请求会保留到拉取缓存中,等待直到超时。这一定程度上避免了反复拉取一批空消息占用带宽资源的问题,不过也把Kafka的ha缓存架构的复杂度提升了一个等级。
相关推荐
【Kafka核心原理详解】 Kafka是一个高性能的分布式消息中间件,广泛应用于现代系统中,以实现消息的高效传输和解耦。理解Kafka的工作原理和...通过掌握Kafka的工作机制,开发者能够更好地构建可扩展、高可用的系统。
安装Kafka时,要配置broker列表、分区策略和消费者组。 Flume是一个日志收集系统,常用于将数据从各种数据源聚合到Hadoop HDFS或其他存储系统。配置Flume涉及定义source、sink和channel,以实现数据流动。 Flink是...
第二篇本文在上篇文章基础上,更加深入讲解了Kafka的HA机制,主要阐述了HA相关各种场景,如Brokerfailover,Controllerfailover,Topic创建/删除,Broker启动,Follower从Leaderfetch数据等详细处理过程。...
它的核心是kafka集群,由多个kafka broker实例组成,每个实例称为broker。Kafka依赖于Zookeeper集群来保存元数据,保障系统的可用性。Zookeeper集群的使用也确保了kafka在消息传输过程中的可靠性。一个consumer ...
Kafka集群通常由多个Producer(消息生产者,如前端产生的页面浏览数据或服务器日志等)、多个Broker(Kafka的代理服务器)、多个ConsumerGroup(消费者组)以及一个Zookeeper集群组成。在Kafka中,Zookeeper用于管理...
以上内容涵盖了大数据领域的关键技术点,包括但不限于分布式计算框架、资源调度、数据分析步骤、Hive、Hadoop HA、Hadoop联邦机制、Storm、Kafka以及HBase等,旨在帮助读者全面了解大数据领域的核心技术及其实现细节...
Metamorphosis 的设计理念是基于pull机制,而不是一般MQ的push模型。它大量利用了zookeeper做服务发现和offset存储。Meta的设计跟Kafka是完全一致的,但Meta相对于Kafka特有的一些功能,如文本协议设计、纯Java实现...
* 实现HA复制 * 实现发送的软负载 * 实现事务机制 * 支持HTTP协议 * 实现消息数据的无痛迁移和水平扩展 特性 Metamorphosis有以下特性: * 生产者、服务器和消费者都可分布 * 消息存储顺序写 * 性能极高,吞吐量...
TubeMQ 具有很多特点,包括纯 JAVA 实现、Master HA 协调节点、弱化 zk、offset 管理去中心化、支持服务端过滤、消息存储模式改进、数据可靠性方案调整等。 TubeMQ 的开源 TubeMQ 的开源是基于公司开源政策号召的...
RabbitMQ的性能优势部分得益于Erlang语言的优秀表现,Erlang最初用于交换机领域,使得RabbitMQ在Broker之间进行数据交互时性能优秀,同时拥有与原生Socket相同的低延迟特点。 AMQP协议是一种二进制协议,是应用层的...
2. Kafka:Kafka利用Zookeeper进行集群配置管理、选举Broker Leader、以及客户端的元数据查询。 3. 分布式数据库:例如MySQL的MyCat分库分表中间件,依赖Zookeeper进行路由规则的发布和订阅。 4. 分布式任务调度:如...
Kafka利用ZooKeeper进行集群管理和元数据的存储,如Broker的注册、Partition的分配等。 4.3 Spark与ZooKeeper Spark使用ZooKeeper进行Master选举,保证Spark集群的高可用性。 4.4 分布式数据库与ZooKeeper 分布式...
Kafka使用Zookeeper来存储集群的元数据,如Broker列表、Topic分区信息等,同时也用于选举Controller和管理Partition的领导者。 四、Zookeeper的部署与使用 4.1 部署 Zookeeper可以通过单机、伪集群和完全集群三种...
Storm 结合消息队列 Kafka 是分布式集群技术的基础,消息队列基本概念(Producer、Consumer、Topic、Broker 等)、消息队列 Kafka 使用场景、Storm 结合 Kafka 编程 API 等内容将为读者提供了 Storm 结合消息队列 ...