PullRequest.MessageQueue.BrokerName

根据PullRequest.MessageQueue得到brokerId,默认0或者用缓存中的suggest,每次消息拉取后会更新sugestBrokerId到缓存,

BorkerName+brokerId在缓存(brokerAddrTable)中找到broker的地址

PullRequest在每20s的重平衡加入,MessageQueue是从NameServer取得的topic的订阅信息中拿到

消息发送:

1.TopicPublishInfo.MessageQueue

2.MessageQueue.brokerName

3.private final ConcurrentMap<String/* Broker Name */, HashMap<Long/* brokerId */, String/* address */>> brokerAddrTable =

new ConcurrentHashMap<String, HashMap<Long, String>>();

brokerAddrTable.get(brokerName).get(0)

 

看下发送时如何负载均衡的,可以看到如果发生重试(lastBrokerName 不为null)优先选上次失败的brokerName。否则逐个轮询

最新文章

  1. 如何在springmvc的请求过程中获得地址栏的请求
  2. 模拟ajax的 script请求
  3. iOS导航栏标题颜色
  4. 周爱民:真正的架构师是没有title的(图灵访谈)
  5. 水晶报表13.x(Crystal Reports for VS2010)的安装部署经验
  6. 学习《Javascript权威指南》的第二章笔记
  7. perl5 第七章 控制结构
  8. Chapter 1 First Sight——10
  9. PL/SQL Developer使用技巧、快捷键、存储过程调试
  10. 关于STM32的延时问题
  11. tp5 整合 个推
  12. nodeJS之crypto模块md5和Hmac加密
  13. 前端使用node.js+express+mockjs+mysql实现简单服务端,2种方式模拟数据返回
  14. Linux源码编译安装程序
  15. python中dir(),__dict__
  16. 进阶之路(基础篇) - 010 Arduino 函数(基本、串口、SPI)
  17. 几乎考虑到了每个细节的php图片上传
  18. PHP通过日志来发现问题
  19. 亿级别记录的mongodb分页查询java代码实现
  20. PyCharm 自定义文件和代码模板

热门文章

  1. Luogu P5072 [Ynoi2015]盼君勿忘
  2. uniapp使用axios以及封装错误重试解决方案
  3. How to use vscode to build a springboot project
  4. Unbuntu 18.04 LTS 环境下Python安装GDAL组件
  5. 1、Web应用
  6. 4、Django之视图层
  7. leetcode 98:n-queens-ii
  8. 利用sklearn实现k-means
  9. webpack配置babel篇
  10. wpf 全局异常捕捉+错误日志记录+自动创建桌面图标