大数据系列 | Kafka架构分析及应用
1. 消息系统介绍
常用消息系统对比:
■ RabbitMQ:Erlang编写,支持多协议AMQP、XMPP、SMTP、STOMP。支持负载均衡、数据持久化。同时支持Peer-to-Peer和发布/订阅模式。.
■ Redis:基于Key-Value对的NoSQL数据库,同时支持MQ功能,可做轻量级队列服务使用。就入队操作而言,Redis对短消息(小于10KB)的性能RabbitMQ好,长消息的性能比RabbitMQ差。
■ ZeroMQ:轻量级,不需要单独的消息服务器或中间件,应用程序本身扮演该角色,Peer-to-Peer。它实质上是一个库,需要开发人员自己组合多种技术,使用复杂度高。
■ ActiveMQ:JMS实现,Peer-to-Peer,支持持久化.、XA事务。
■ Kafka/Jafka:高性能跨语言的分布式发布/订阅消息系统,数据持久化,全分布式,同时支持在线和离线处理。
■ MetaQ/RocketMQ:纯Java实现,发布/订阅消息系统,支持本地事务和XA分布式事务。
消息系统适用场景:
■ 解耦: 各位系统之间通过消息系统这个统一的接口交换数据,无须了解彼此的存在
■ 冗余: 部分消息系统具有消息持久化能力,可规避消息处理前丢失的风险
本文介绍了消息系统的基本概念和常见类型,重点解析了Kafka的高吞吐量、持久化特性及其分布式架构。Kafka不仅依赖Zookeeper(2.8版本前)进行集群管理,还涉及Controller的角色和功能。文章详细阐述了Kafka的安装、生产者和消费者使用,以及Zookeeper集群的配置,展示了Kafka在实时数据计算中的重要地位。
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



