• Kafka学习笔记(二、Kafka中的角色)


    目录:

    • Kafka Broker和集群
    • Kafka主题和分区
    • Kafka Producer和Consumer

    Kafka Broker和集群:

    1、Broker:一个独立的Kafka服务器被称为broker,它用于接收生产者的消息,并设置消息的偏移量,还会把消息保存到磁盘中

    2、集群:多个Kafka实例组成Kafka集群,每个实例都被称为broker。其中每个Kafka集群中都会有一个节点被选为领导节点,也叫做broker中央控制器。

    broker中央控制器的主要工作:

    • 管理整个集群的分区:当某个topic增加分区数量的时候,由中央控制器管理重新分配分区的工作。
    • 监控副本的状态
      • leader副本故障时,由中央控制器重新为改partition选举新的leader副本。
      • 当检测到同步列表发生变化时,由中央控制器通知所有broker更新其缓存的元数据。

    broker中央控制器选举过程:每个Kafka启动的时候都会创建一个KafkaController对象,但集群中只能有一个leader。Kafka的做法是每个KafkaController都会去指定的zookeeper路径下创建临时节点,只有第一个成功创建的才能成为leader节点,其余的都是follower。当leader节点发生故障时,所有的follower节点都会都到通知,然后去竞争在改路径下创建节点,从而选举出新的leader节点。

    Kafka主题和分区:

    1、主题:数据记录发布的地方,可以用来区分业务系统。Kafka中的Topic是多订阅者模式,一个topic可以拥有一个或多个消费者来订阅它。

    2、分区:对于每个topic,Kafka集群都会有一个或多个分区。分区的角色分为leader分区和follower分区,每个分区都是有序且顺序不便的数据集,并且不断的追加到结构化的log文件中。

    Kafka Producer和Consumer:

    生产者发送模式:

    • 同步(synchronize):调用send方法发送消息后会返回一个Future对象,可以通过Future对象知道消息是否发送成功(Kafka默认同步,即producer.type=sync)。
    • 异步(asynchronize):调用send方法并制定一个回调函数,服务器再响应时调用该函数。
    • 发送后就不管了(OneWay):消息发给服务器,不关心是否正常到达。
  • 相关阅读:
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    jquery各种滚动
    IE屏蔽鼠标右键、禁止复制粘贴等功能
    java高级---->Thread之BlockingQueue的使用
    java基础---->多线程之synchronized(六)
    java基础---->java中字符编码问题(一)
    java基础---->多线程之wait和notify(八)
    java基础---->多线程之ThreadLocal(七)
    java基础---->多线程之interrupt(九)
    java高级---->Thread之Exchanger的使用
  • 原文地址:https://www.cnblogs.com/bzfsdr/p/12181264.html
Copyright © 2020-2023  润新知