Kafka个人学习总结

WHAT

分布式发送-订阅消息系统

Feather
  • 高吞吐率、低延迟
  • 可扩展性
  • 持久性与可靠性
  • 高容错
  • 高并发

kafka可以将消息分布缓存在Broker上,通过zookeeper找到各个Broker的位置


Kafka个人学习总结_第1张图片
架构图
Producer
  • 向Broker发送消息
  • 可通过任一Broker发现其他Broker位置
  • 消息组成
    • topic
    • key
    • value
    • timestamp
Broker
  • Producer和consumer之间的桥梁
    • 从Producer接收消息,并保存下来
    • 将消息发送给订阅的Consumer
  • 可将消息缓存一段时间
    • 每个消息保存成多副本(默认3个)
    • 可设置保存时间(默认一周)
topic与partition

注意:partition可以保证消息的时序性(按顺序读写),而整个topic是无法保证的
kafka以patition为单位对消息进行备份,每个patition可以配置至少一个副本( replica)

Kafka个人学习总结_第2张图片
Broker内部

WHY

场景:
如果我们有上百个运⾏在不同机器上的服务, 每个服务产⽣⼤量⽇志和消息, 如何对他们进⾏分析和处理?
问题描述:
我们如何将⽇志发送到⼀个统⼀的地⽅进⾏处理和分析,需要⼀种兼顾reliable, scalable, extensible 和 manageable的⽅式

Kafka个人学习总结_第3张图片
前端和后端严重耦合

理想的解决方法:

Kafka个人学习总结_第4张图片
引入kafka中间组件

WHERE

可以在其他的数据中心进行数据的传输,并写入一些hadoop的系统组件存储
Kafka个人学习总结_第5张图片
离线数据中心
与Flume和实时计算引擎搭配处理一些实时数据分析的场景
Kafka个人学习总结_第6张图片
用于实时计算

你可能感兴趣的:(Kafka个人学习总结)