zoukankan      html  css  js  c++  java
  • Kafka producer sender 线程的活动关系图

    重新按泳道方式整理了一下producer sender线程的活动图,大致描述了主要的过程

    leastLoadedNode 的说明:

    首先从现有的broker节点列表中随机选择一个节点,以此为起点循环所有的节点

    如果某个节点当前飞行队列请求数为0,且节点是连接状态,则选择此节点,退出循环

    否则寻找飞行队列中请求数最少的处于连接状态的节点,或者有可能选择一个尚未连接的节点(如果所有已连接节点都在使用中)

    永远不会返回一个处于灯火管制期(blackout)节点(处于断开连接状态,且还在重连周期内,默认为"reconnect.backoff.ms" -> "50",也就是从上次尝试连接时间到当前的时间流逝还没到reconnect.backoff.ms)

    NetworkClient.maybeUpdate的说明:

    什么情况可以发送数据呢,只有节点是连接状态,且节点通道channel是ready状态(transportLayer是ready,authenticator是complete状态),且此节点的飞行队列数少于每连接最大数(默认为 "max.in.flight.requests.per.connection" -> "5")

    那什么情况下可以连接呢,如果节点不存在连接状态,或者节点是断开连接状态且从上次尝试连接时间到当前的时间流逝已经超过了重连周期("reconnect.backoff.ms" -> "50")

  • 相关阅读:
    mysql表的操作
    mysql 索引
    JQuery
    js
    cobbler一键批量安装系统
    rabbitmq-cluster搭建
    KVM嵌套虚拟化nested之CPU透传
    kvm虚拟机管理
    dlib(【机器学习库】含有多线程网络容器等基础功能】)
    ScriptCommunicator(各种通讯方式测试串口can网络等)
  • 原文地址:https://www.cnblogs.com/benfly/p/9456065.html
Copyright © 2011-2022 走看看