Kafka 架构


Kafka 架构

Broker : 作为一个后台服务。

Producer和Consumer作为SDK,将SDK引入工程当中,从外部拿数据,通过Producer的sdk发送给broker,通过Consumer的SDK将数据拿到程序当中。

如何刷新整个集群的元信息(Producer如何维护缓存的整个集群Broker的元信息)?

    Producer在向某个Broker发送消息失败之后,会主动触发刷新Broker元信息

    Producer会周期性地刷新Broker缓存的信息

    Consumer如何发现Broker?Consumer如何选择连接到Broker

会涉及到Topic和Partition

Topic&Partition

Topic

    逻辑概念,同一个Topic的消息可分布在一个或多个节点(Broker)上

    一个Topic包含一个或者多个Partition

    每条消息都属于且仅属于一个Topic

    Producer发布数据时,必须指定该消息发布到哪一个Topic

    Consumer订阅消息时,也必须指定订阅哪个Topic的消息

Partition

    物理概念,一个Partition只分布于一个Broker上(不考虑备份)

    一个Partition物理上对应一个文件夹

    一个Partition包含多个Segment(Segment对用户透明,用户无需感知)

    一个Segment对应一个文件

    Segment由一个个不可变记录组成

    记录只会被append到Segment中,不会被单独删除或者修改

    清除过期日志时,直接删除一个或多个Segment


默认kafka会将数据保存168小时。


Sync Producer(同步Producer)

    低延迟

    低吞吐率

    无数据丢失

Aync Producer(异步Producer)

    高延迟

    高吞吐率

    可能会有数据丢失

你可能感兴趣的:(Kafka 架构)