0
点赞
收藏
分享

微信扫一扫

走进消息队列-笔记

本次学习内容:

  • 走进消息队列
  • 消息队列-Kafka
  • 消息队列-BMQ
  • 消息队列-RocketMQ

消息队列定义

消息队列可以看成一个存放消息的容器,当我们需要使用消息的时候,直接从容器中取出消息供自己使用即可。消息队列是分布式系统中重要的组件之一。

作用与优缺点

异步处理提高性能

削峰/限流

降低系统耦合性

业界消息队列对比

  • Kaffa:分布式的、分区的、多副本的日志提交服务,在高吞吐场景下发挥较为出色,适用于大数据领域的实时计算、日志采集场景。但存在运维成本高、负载不均衡问题。
  • RockerMQ:阿里开源的分布式消息传递和流式数据平台,具有低延迟、强一致、高性能、高可靠、万亿级容量和灵活的可扩展性的优点,在一些实时和事务性要求高场景如电商、金融中应用较广。
  • Pulsar:下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体、采用存算分离的架构设计。支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性,被看作是云原生时代实时消息流传输、存储和计算最佳解决方案
  • BMQ:和Pulsar架构类似,存算分离,初期定位是承接高吞吐的离线业务场景,逐步替换掉对应的Kafka集群。

消息队列-Kaffa

如何使用Kafka

  • 创建集群->新增Topic->编写生产者逻辑->编写消费者逻辑
  • 基本概念
  • Offset
  • Replica
  • 数据复制
  • Kafka架构
  • Producer-批量发送
  • Producer-数据压缩
  • Broker-数据的存储
  • Consumer-消息的接收端
  1. producer:批量发送,数据压缩
  2. Broker:顺序写,消息索引,零拷贝
  3. Consumer:Rebalance

Kafka-问题总结

  • 运维成本高
  • 对于负载不均衡的场景,解决方法复杂
  • 没有自己的缓存,完全依赖Page Cache
  • Controller 和 Coordinator和Broker在统一进程中,大量IO会造成储层性能下降
举报

相关推荐

0 条评论