一、Kafka发布订阅消息系统基础
Kafka 是分布式发布-订阅消息系统。它最初由 LinkedIn 公司开发,使用 Scala语言编写,之后成为 Apache 顶级项目框架。Kafka 是一个分布式的,可划分的,多订阅者,冗余备份的持久性的服务。
在Kafka生态架构实战中已经介绍了Kafka生态系统,伴随大数据计算,kafka作为重要的数据缓冲者,将flume收集的数据缓冲,提供给storm进行实时计算。同于storm框架,针对实时性、流式计算系统也是kafka的主要应用。它主要用于处理活跃的流式数据。
二、Kafka的特点
1、同时为发布和订阅提供高吞吐量。统计Kafka 每秒可以生产约 25 万消息(50 MB),每秒处理 55 万消息(110 MB)。
2、可持久化操作。将消息持久化到磁盘,因此可用于批量消费,通过将数据持久化到硬盘以及 replication 防止数据丢失。
3、分布式系统,易于向外扩展。所有的 producer、broker 和 consumer 都会有多个,均为分布式的。无需停机即可扩展机器。
4、kafka每个实例(broker)是无状态的,只管消息的增减,不管谁来消费,消息被处理的状态是由consumer主动从topic分区中pull消息,也就是说消息由谁消费由 consumer 决定,而不是由 server的broker决定。