2019独角兽企业重金招聘Python工程师标准>>>

TimeTunnel在做消息分发时有这样一个场景:

A类消息需要做实时分析, 且量很大, 故它的消费者不会只是一台机器, 而是一组机器, 并要求这组中每台机器收到的消息量应该平均的,  即A消息在某个时刻有100条,  若有4台机器消费的话, 最佳的情况每台机器应收到25条.

这个场景就好比, 一个消息队列, 有多个线程并行消费, 如何保证每个消费线程获取的消息数量一样的.

解决它的切入点可能有两个:

  1. 消费线程拉的方式, 这就需要一个协调器,  来同步每个消费线程的进度, 即每个消费线程每次拉完都需要询问协调器是否可以继续;
  2. 单一线程推的方式, 创建一组与消费线程数量一致的二级队列(即每个消费线程仅从与之绑定的队列中取);  独立一个分派线程, 它从一级队列里取消息, 然后轮转的推给每个二级消费队列.

这两条思路各有优缺点, 要视系统在时间和空间上的取舍而定. TimeTunnel 选择了第一种方式, 实现分了三步...

更多内容, 请见http://www.tbdata.org/archives/1579.

已有 0 人发表留言,猛击->>这里<<-参与讨论

JavaEye推荐

  • —软件人才免语言低担保 赴美带薪读研!—

转载于:https://my.oschina.net/zhongl/blog/13881

消息分发的同步均衡策略相关推荐

  1. mqtt 发送消息过多_阿里云MQTT服务端注解式消息处理分发与同步调用实践小结

    一.前言 前段时间公司预研了设备app端与服务端的交互方案,出于多方面考量最终选用了阿里云的微服务队列MQTT方案,基于此方案,本人主要实践有: 1. 封装了RocketMQ实现MQTT订阅与发布的实 ...

  2. SpringCloud组件:Ribbon负载均衡策略及执行原理!

    大家好,我是磊哥. 今天我们来看下微服务中非常重要的一个组件:Ribbon.它作为负载均衡器在分布式网络中扮演着非常重要的角色. 本篇主要内容如下: 在介绍 Ribbon 之前,不得不说下负载均衡这个 ...

  3. kafka 消息分发机制、分区和副本机制

    一.消息分发机制 1.1 kafka 消息分发策略 消息是 kafka 中最基本的数据单元,在 kafka 中,一条消息由key.value两部分构成,在发送一条消息 时,我们可以指定这个key,那么 ...

  4. dubbo调用失败策略_面试官:dubbo负载均衡策略,集群容错策略,动态代理策略有哪些...

    面试官心理分析 继续深问吧,这些都是用 dubbo 必须知道的一些东西,你得知道基本原理,知道序列化是什么协议,还得知道具体用 dubbo 的时候,如何负载均衡,如何高可用,如何动态代理. 说白了,就 ...

  5. dubbo负载均衡策略和集群容错策略

    dubbo负载均衡策略 random loadbalance 默认情况下,dubbo是random load balance随机调用实现负载均衡,可以对provider不同实例设置不同的权重,会按照权 ...

  6. Dubbo面试 - dubbo 负载均衡策略和集群容错策略都有哪些?

    Dubbo面试 - dubbo 负载均衡策略和集群容错策略都有哪些? 面试题 dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢? 面试官心理分析 继续深问吧,这些都是用 dubbo 必须 ...

  7. web应用负载均衡策略

    1.  名词解释 1.  正向代理与反向代理 简单说 我们内网访问facebook用的代理就叫正向代理 从美国访问我们内网需要的代理就叫反向代理 多台服务器处于一个内网,而我们要访问这些服务器,中间加 ...

  8. 百万人在线的直播间实时聊天消息分发技术

    随着直播类应用的普及,尤其直播带货概念的风靡,大用户量的直播间场景已然常态化. 大用户量直播间中的实时互动是非常频繁的,具体体现在技术上就是各种用户聊天.弹幕.礼物.点赞.禁言.系统通知等实时消息. ...

  9. Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 1.什么是Nginx,谈谈个人都理解,项目中是否用到,为什 ...

最新文章

  1. Centos7状态下查看防火墙状态及修改服务端口
  2. KNN学习之图像分类与KNN原理
  3. centos7 安装 openssl
  4. Java和ABAP中的几种引用类型的分析和比较
  5. Oracle 更新Opatch、打补丁
  6. 程序设计作业: 车模+数模 = ?
  7. 南通大学计算机组成原理期末考试题,南通大学计算机组成原理期末考试范围.docx...
  8. Python精通-Python字典操作
  9. bzoj1036 树的统计Count 树链剖分
  10. varnish关于Grace mode和Saint mode这两中模式配置
  11. 5101是多大的电阻_电阻尺寸对照表
  12. 在外部JS中使用validity进行表单验证出现未定义问题
  13. 用例图包含关系、扩展关系、泛化关系解析
  14. 手机电池校正代码_安卓手机电量怎样校正?电池校正电量方法
  15. 集成学习中boosting、bagging、随机森林算法的介绍
  16. 如何使用js实现交通红绿灯
  17. Vue3.0系列(一): VUE3.0的新特性
  18. 而洗洁精膜会有效地保持玻璃2小时内不结霜
  19. 计算机中函数vlookup怎么用,教您使用excel函数vlookup
  20. 【问题】[已修改但尚未保存]/bin/bash: wq:未找到命令 Shell 已返回127

热门文章

  1. POJ 1325 Machine Schedule(二分图最小点集覆盖)
  2. SharePoint文档上传管理
  3. Linux LED驱动开发实验(直接操作寄存器 -- 实际开发很少这样做)
  4. 安卓APP_ Fragment(1)—— Fragment概念、基础用法、动态变换、管理栈
  5. 360 linux 扩展文件夹,360签具名工Linux下载0907 官方版
  6. 不自定义异步方法的线程池默认使用SimpleAsyncTaskExecutor
  7. 更新 绑定数据_Blazor 修仙之旅 组件与数据绑定
  8. 攻击防护手段_如何防护ddos流量攻击?
  9. Win11系统各个版本之间的比较,看完你就懂了!
  10. 数据库:MySQL、HBase、ElasticSearch三者对比