消息队列kafka 创建集群-新增topic-编写生产者逻辑-编写消费者逻辑 Topic: 逻辑队列,不同 Topic 可以建立不同的 TopicCluster: 物理集群,每个集群中可以建立多个不同的 TopicProducer: 生产者,负责将业务消息发送到 Topic 中Consumer: 消费者,负责消费 Topic 中的消息ConsumerGroup: 消费者组,不同组 Consumer 消费进度互不干涉 Offset : 消息在 partition 内的相对位置信息,可以理解为唯-ID,在 partition 内部严格递增 每个分片有多个 Replica,Leader Replica 将会从 ISR 中选出。 Broker消息文件结构 磁盘结构:移动磁头找到对应磁道,磁盘转动,找到对应扇区,最后写入。寻道成本比较高,因此顺序写可以减少寻道所带来的时间成本。 顺序写:提高写入效率 偏移量索引文件:二分找到小于目标offset的最大文件 时间索引“二分找到小于目标时间戳最大的索引位置,在通过寻找 offset 的方式找到最终数据 如何解决partition在consumer group中的分配问题?
通过手动进行分配,哪一个Consumer消费哪一个partition完全由业务来决定 帮助kafka提高吞吐或者稳定性的功能: Producer:。批量发送、数据压缩 Broker: 顺序写,消息索引,零拷贝 Consumer: Rebalance BMQ 消息队列(Message Queue)简写为MQ,可以简单将其理解成:把要传输的数据放在队列中。 hdfs写文件流程:随机选择一定数量的 DataNode 进行写入 状态机:保证对于任意分片在同一时刻只能在一个 Broker上存活