京东云开发者|mysql基于binlake同步ES积压解决方案( 二 )


优点

  • 指定资源情况下,增大消费端并发
  • 可以开启并行消费,且保证顺序消费
  • 可以使得资源充分利用,增加消费性能
缺点
  • 增加毫秒级缓存额外开销
实践:麦哲伦运单中心针对此方案实现binlake数据同步ES
2)binlake主题分发子主题,显示增大并发策略
京东云开发者|mysql基于binlake同步ES积压解决方案

文章插图
优点:
  • 逻辑相对简单,不需要开发复杂逻辑,无需引入额外中间件
  • 预估转发消息速率即是实际处理速率
提升速率计算:
  • 原主题单线程处理一条数据存储到ES时间为es_time,举例为50ms,每秒吞吐量是20条
  • 现单线程转发MQ一条数据时间为trans_time,举例为20ms,每秒转发吞吐量50条
  • 假设转发topic为N个子主题 , 则吞吐量理论为n*20实际小于转发吞吐量50,此处多子主题对cpu核数竞争
  • 提升吞吐量为=(1000ms/trans_time )转发吞吐量 - (1000ms/es_time)原有吞吐量
缺点
  • 扩展性不好,实际结果有待验证,小于预估值
实践:跨境赤道分发中心实现类似功能实践,消息转发,其他MQ实现
3)俩种方案对比
主题较少一个俩个主题情况下,且业务处理比较耗时情况下,不想额外开发,可选方案二长期方案选择方案一,并行消费策略,可伸缩性,可扩展,支持动态扩容
5.总结针对MQ积压问题,并行消费可以是解决问题的一大利器,本文从binlake同步ES进行分析 , 同时针对积压推荐俩种方案,并从性能合理利用及扩展性分析 , 简要介绍方案二并行有序消费策略,希望能够帮助大家,如有问题,请随时指出!
作者:任洪波

推荐阅读