一、简介
Kafka是一种分布式的,基于发布/订阅的消息系统
主要特性:
1)消息持久化
要从大数据中获取真正的价值,那么不能丢失任何信息。Apache Kafka设计上是时间复杂度O(1)的磁盘结构,它提供了常量时间的性能,即使是存储海量的信息(TB级)。
2)高吞吐
记住大数据,Kafka的设计是工作在标准硬件之上,支持每秒数百万的消息。
3)分布式
Kafka明确支持在Kafka服务器上的消息分区,以及在消费机器集群上的分发消费,维护每个分区的排序语义。
4)多客户端支持
Kafka系统支持与来自不同平台(如java、.NET、PHP、Ruby或Python等)的客户端相集成。
5)实时
生产者线程产生的消息对消费者线程应该立即可见,此特性对基于事件的系统(比如CEP系统)是至关重要的。
Broker
-----------------------------------------------------
Kafka集群包含一个或多个服务器,这种服务器被称为broker(kafka实例)
**********************************************************************************************************
1.生产者---》Broker(Leader partition)
[主从复制了再返回ask?ask了再去主从复制?]
选择保存到哪一个partition(Key Hash)
2.Broker(Leader partition)-->>Broker(follower partition)
分布式存储partition
(主从复制)
[选举leader]
删除消息方式
3.Broker(Leader partition)-->>消费者
[处理了消息再返回commit?commit了再处理消息?]
offset
Consumers(消费者)/consumers group(订阅/广播)
*********
Kafka是一种分布式的,基于发布/订阅的消息系统
主要特性:
1)消息持久化
要从大数据中获取真正的价值,那么不能丢失任何信息。Apache Kafka设计上是时间复杂度O(1)的磁盘结构,它提供了常量时间的性能,即使是存储海量的信息(TB级)。
2)高吞吐
记住大数据,Kafka的设计是工作在标准硬件之上,支持每秒数百万的消息。
3)分布式
Kafka明确支持在Kafka服务器上的消息分区,以及在消费机器集群上的分发消费,维护每个分区的排序语义。
4)多客户端支持
Kafka系统支持与来自不同平台(如java、.NET、PHP、Ruby或Python等)的客户端相集成。
5)实时
生产者线程产生的消息对消费者线程应该立即可见,此特性对基于事件的系统(比如CEP系统)是至关重要的。
Broker
-----------------------------------------------------
Kafka集群包含一个或多个服务器,这种服务器被称为broker(kafka实例)
**********************************************************************************************************
1.生产者---》Broker(Leader partition)
[主从复制了再返回ask?ask了再去主从复制?]
选择保存到哪一个partition(Key Hash)
2.Broker(Leader partition)-->>Broker(follower partition)
分布式存储partition
(主从复制)
[选举leader]
删除消息方式
3.Broker(Leader partition)-->>消费者
[处理了消息再返回commit?commit了再处理消息?]
offset
Consumers(消费者)/consumers group(订阅/广播)
*********