(一)分布式流平台之kafka 设计思想

版权声明:话不在多,在于精 https://blog.csdn.net/qq_29857681/article/details/88387159
  1. kafka的消息数据怎么才能满足企业中各种应用场景的需求呢? 消费者组横向伸缩
    1. 一个主题可以被多个消费者组订阅,各个企业有一个消费者组,订阅消息,消费者组可以横向伸缩,从而减轻消费者负载。
  2. kafka如何保证消息的海量存储,及快速查询,和单点故障呢? 分片+副本
    1. 消息在存储时,是根据每个消息的key进行 hash(key)%分区数(此hash算法是kafka自己实现和jdk无关)计算出对应的分区,进行保存
    2. 同一个主题的消息可以保存在不同的分区下。实现横向扩展。
    3. 每个分区有自己的副本,解决数据的单点故障问题。
  3. kafka如何生产数据?消息key+批次
    1. 首先指定消息的主题和键值对。
    2. 根据key计算分区
    3. 消息先缓存在本地,经过序列化后,分批次发送到broker
  4. kafka如何实现多个消费者消费同一个消息呢?
    1. 消息被写入到磁盘中,默认保存7天
    2. 消费者把每个分区最后读取的消息偏移量保存在Zookeeper或Kafka中

猜你喜欢

转载自blog.csdn.net/qq_29857681/article/details/88387159