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")

  • 相关阅读:
    如何实现EndNote中的PDF批量导出
    UltraEdit 编译输出中文乱码的解决办法
    史密斯(smith)圆图讲解
    OpenFlow
    网络虚拟化-简介
    java util包概述
    内存四区分析
    理解Java接口
    Ubuntu14.04安装wineqq国际版
    使用注解来构造IoC容器
  • 原文地址:https://www.cnblogs.com/benfly/p/9456065.html
Copyright © 2011-2022 走看看