`

RabbitMq与Kafka集群设计比较

阅读更多

1.RabbitMq集群

 

2.Kafka基础

2.1基础概念

 

Producer:消息生产者,负责发布消息到 Kafka broker
Consumer:消息消费者,向 Kafka broker 读取消息
Broker:Kafka 集群包含一个或多个服务器,这种服务器被称为 broker。一个broker上可能有很多topic的partition。
Topic:每条发布到 Kafka 集群的消息都有一个类别,这个类别被称为 Topic。一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的整体(多个partition间)的顺序。
Partition:分区,每个 Topic 包含一个或多个 Partition。

2.2架构图

 

2.3 kafka设计:

1.消费者:客户端从broker拉的策略,支持批量拉和压缩,由消费者在zk记录消息offset

2.生产者:A 异步发送,支持累积数据量64k或者10毫秒;B 负载均衡,消费者发送的消息分发到不同的broker上

2.broker:把文件系统作为存储系统,顺序写入磁盘,zero-copy方式文件传输

3.备份:如果topic设置了replication,那意味着每个Partition都会有2个备份,对外提供服务的只有leader,follwer只是备份leader的数据;leader和follwer之间通过副本来选出leader,如果follwer跟不上leader就会被提出副本,如果leader不在,就会在副本中选取一个做为leader,如果所有的备份都down了,则选择最近down掉的一个备份作为leader

 

 

 

更多精彩内容请继续关注我的博客http://blog.csdn.NET/caicongyang

记录与分享,你我共成长 -fromcaicongyang

 

 

 

 

 

 

 

 



分享到:
评论

相关推荐

    camel-archetype-rabbitmq-kafka-connector:扩展camel-rabbitmq-kafka-connector的项目,以便可以通过kafka连接器配置以无缝方式传递地图配置

    同时,Camel的Kafka组件提供了类似的功能,用于与Kafka集群进行通信。然而,在实际应用中,可能需要将两个系统连接起来,以便在它们之间流动数据。这就是“camel-archetype-rabbitmq-kafka-connector”项目的价值...

    分布式通讯面试专题系列:ActiveMQ+RabbitMQ+Kafka.zip

    接着,RabbitMQ是一个广泛使用的开源消息代理,基于AMQP(Advanced Message Queuing Protocol),这个协议被设计为跨平台且可扩展。RabbitMQ以其稳定性、灵活性和广泛的社区支持而闻名。它支持多种客户端库,使得在...

    kafka集群方案选型

    每种产品都有其优缺点,本文将对这些产品进行比较,阐述Kafka集群方案选型的必要性和可行性。 一、消息中间件产品对比 当前主流消息中间件产品对比 | 产品 | 吞吐量 | 开发语言 | 主要维护者 | 成熟度 | 文档和...

    消息中间件kafka与activemq、rabbitmq、zeromq、rocketmq的比较

    #### Kafka与Activemq、Rabbitmq、ZeroMq、Rocketmq的比较 在现代分布式系统中,消息中间件(Message Queue, MQ)扮演着至关重要的角色,它们用于在分布式组件之间传输消息,帮助解决网络延迟、组件故障等问题,...

    分布式通讯面试专题系列:ActiveMQ+RabbitMQ+Kafka-07.rar

    面试中,候选人往往会被问及关于消息中间件的知识,特别是ActiveMQ、RabbitMQ和Kafka这三大主流消息队列系统的理解与应用。本系列专题将深入探讨这三个工具,以帮助你更好地准备面试。 1. **ActiveMQ**: - ...

    RabbitMq实例以及安装包

    另外,Kafka 的定位主要在日志等方面, 因为Kafka 设计的初衷就是处理日志的,可以看做是一个日志(消息)系统一个重要组件,针对性很强,所以 如果业务方面还是建议选择 RabbitMq 。 还有就是,Kafka 的性能(吞吐...

    4 Kafka 集群在马蜂窝大数据平台的优化与应用扩展.docx

    总结来说,马蜂窝通过逐步优化Kafka集群,提升了大数据平台的稳定性和效率,同时满足了多元化业务需求。这种实践不仅体现了对技术演进的敏锐度,也展示了在大数据时代如何有效地管理和利用数据资源。

    kafka细心原理与实战

    - **KafkaController**:Kafka集群会选举一个Broker作为控制器,负责管理集群的分区分配和其他集群状态维护。 **5. ZooKeeper**:用于管理和协调Kafka集群的配置信息,如Broker列表、Topic配置、分区分配等。 ###...

    MQ选型之RabbitMQ

    ##### 3.5 RabbitMQ与Kafka比较 虽然**Kafka**在吞吐量和TPS方面表现更为出色,但考虑到RabbitMQ在**可用性、稳定性和可靠性**方面的优势,以及更广泛的适用场景,对于大多数应用场景而言,**RabbitMQ仍然是更好的...

    kafka va rabbitmq

    标题 "Kafka与RabbitMQ" 提到的是两种流行的分布式消息队列系统,它们在大数据处理和实时数据流中扮演着重要角色。这篇讨论将深入探讨这两种技术的异同,帮助理解它们各自的优势和适用场景。 Kafka是由LinkedIn开发...

    RabbitMQ 23 道面试题及答案.docx

    答案:RabbitMQ 与 Kafka 的区别在于其设计理念和应用场景等。 18. RabbitMQ 如何实现高可用性? 答案:RabbitMQ 可以通过集群化部署、消息高可靠支持等方式来实现高可用性。 19. RabbitMQ 如何实现高性能? ...

    RabbitMQ笔记.pdf

    RabbitMQ支持集群模式、表达式配置、高可用(HA)模式和镜像队列模型,具备高性能的特性。RabbitMQ的性能优势部分得益于Erlang语言的优秀表现,Erlang最初用于交换机领域,使得RabbitMQ在Broker之间进行数据交互时...

    Kafka3.0详解,客户端命令,核心配置文件详解。spring集成、webflux集成、集群搭建

    为了保证系统的高可用性和负载均衡,Kafka集群由多个Broker组成,每个Broker负责消息的存储和处理。在集群环境中,需要配置ZooKeeper以管理集群的元数据。同时,Kafka支持分区复制和分区均衡,以保证消息的可靠性与...

    kafka面试题.docx

    与传统消息队列系统(如 RabbitMQ)相比,Kafka 更强调消息的持久性和流处理能力。传统队列系统通常按先进先出(FIFO)原则处理消息,而 Kafka 支持基于逻辑的处理和消息的长期保留。此外,RabbitMQ 在性能上不如 ...

    Kafka视频教程(入门到精通)

    5. **Broker**:Kafka集群中的单个服务器,负责接收生产者发送的消息并将消息追加到磁盘,同时负责将消息发送给消费者。 6. **Zookeeper**:用于管理和协调Kafka集群的元数据,包括集群的配置信息、选举Leader等。 ...

    Kafka入门、介绍、使用及部署

    3. **日志聚合**:Kafka可以用作集中式日志收集平台,应用程序可以将日志批量、异步地发送到Kafka集群中,之后再由Hadoop等系统进行进一步的存储和分析。 #### 四、设计原理 1. **持久性**:Kafka使用文件系统存储...

    kafka2.3.0 linux版本

    6. **Broker**: Kafka集群由多个节点(Broker)组成,每个节点存储部分主题的分区。 **3. Kafka的使用场景** 1. **日志收集**: Kafka常用于收集应用程序的日志数据,进行集中分析。 2. **实时流处理**: Kafka与...

    消息中间件的一点经验 rabbitmq、activemq、rocketmq、kafka-mq-research.zip

    Kafka Connect允许与其他数据存储系统集成,便于构建数据管道。 在选择消息中间件时,应考虑以下因素:是否符合项目的技术栈(如支持的协议和编程语言)、性能需求(如处理速度、吞吐量和延迟)、稳定性(如故障...

    kafka资源可视化管理工具

    它提供了一个直观的UI,允许用户查看Kafka集群中的对象以及集群主题中存储的消息。我们在项目开发中根据实际业务需求会使用到一些中间件,比如缓存redis、消息队列Kafka/RocketMQ/RabbitMQ等,在代码中集成后,可以...

Global site tag (gtag.js) - Google Analytics