WHAT
分布式发送-订阅消息系统
Feather
- 高吞吐率、低延迟
- 可扩展性
- 持久性与可靠性
- 高容错
- 高并发
kafka可以将消息分布缓存在Broker上,通过zookeeper找到各个Broker的位置
Producer
- 向Broker发送消息
- 可通过任一Broker发现其他Broker位置
- 消息组成
- topic
- key
- value
- timestamp
Broker
- Producer和consumer之间的桥梁
- 从Producer接收消息,并保存下来
- 将消息发送给订阅的Consumer
- 可将消息缓存一段时间
- 每个消息保存成多副本(默认3个)
- 可设置保存时间(默认一周)
topic与partition
注意:partition可以保证消息的时序性(按顺序读写),而整个topic是无法保证的
kafka以patition为单位对消息进行备份,每个patition可以配置至少一个副本( replica)
WHY
场景:
如果我们有上百个运⾏在不同机器上的服务, 每个服务产⽣⼤量⽇志和消息, 如何对他们进⾏分析和处理?
问题描述:
我们如何将⽇志发送到⼀个统⼀的地⽅进⾏处理和分析,需要⼀种兼顾reliable, scalable, extensible 和 manageable的⽅式
理想的解决方法:
WHERE