Kafka实战解惑
#一、Kafka简介# Kafka是LinkedIn使用Scala开发的一个分布式消息中间件,它以水平扩展能力和高吞吐率著称,被广泛用于日志处理、ETL等应用场景。Kafka具有以下主要特点: **消息的发布、订阅均具有高吞吐量:**据统计数字表明,Kafka每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB)。 **消息可持久化:**消息可持久化到磁盘并且通过Replication机制防止数据丢失。 **分布式系统,可水平扩展:**所有的生产者(Producer)、消费者(Consumer)、消息中间存储(Broker Server)都可实现多实例分布式部署,且在不停机情况下实现水平扩展。 **高可靠性:**消息被处理的状态由消费者同步到Zookeeper而非Broker Server中,当Broker Server失效时,通过副本切换机制选择一个新的Broker Server,消费者在从Zookeeper中读取之前消费消息的位置,不会引起消息丢失。 支持Online和Offline的场景。 随着Kafka开源后被业界成功且广泛的使用,LinkedIn开发Kafka的核心技术人员Jay Kreps离开LinkedIn成立了一个新公司Confluent,打造了一个基于Kafka且拥有更为丰富的产品线,意图构建一个基于Kafka的生态系统,与Kafka相比