XuLizhao 's Notes

时光,漫步


  • 首页

  • 技术

  • 文档

  • 关于

  • 搜索
close

开源消息队列实现

时间: 2018-07-24   |   分类: tech     |   阅读: 558 字 ~2分钟

经常会遇到系统中使用Message Queue/消息队列的情况, 与此类似的模型还有 pubsub/发布订阅模式(publisher/subscriber).

这两种模型的实现也被看做 消息中间件/MOM(Message-Oriented Middleware),因为这种结构解耦了发送端和接收端,简化了架构.

另外常提的一个概念是Messaging Broker, 更多的用于消息验证,转换,路由.

现在有很多流行的开源实现, 对于消息有常用的三种标准:

  • AMQP: Advanced Message Queuing Protocol
  • STOMP: Streaming Text Oriented Messaging Protocol
  • MQTT/ MQ Telemetry Transport: 轻量级协议,IoT标准

其他

  • XMPP/Extensible Messaging and Presence Protocol: 基于XML的通讯协议

前两个基于HTTP, 后一个基于TCP/IP.

下面是一些实现的概要描述, 这些实现的比较不全在同一纬度, 只是看那个更适合你的应用场景,语言绑定等.

开源实现

名称 语言 星数 描述
ActiveMQ Java 1.1 k Apache基金旗下, 支持JMS
RabbitMQ Erlang 4.3k 貌似MQ系列的首选,成熟且性能高
ZeroMQ C++ 4.4k 高度封装并支持多种收发模式。点对点的消息传输上,能在发送端缓存消息
Celery Python 10k 异步任务队列,常用于耗时操作的异步执行
Redis C 30.3k 最流行的内存KV数据库/缓存
Kafka Java/Scala 9k 早期LinkedIn开源产品,后归于Apache基金. 常用于日志处理分析
NATS Go 4.4k CNCF孵化项目
NSQ Go 12k 项目近期发布不活跃

注: 只接触过Celery,Redis和Kafka, MQ系列没有使用经验不做过多介绍.

示例

TBC…

  • 本文作者: xulizhao
  • 本文链接: https://xulizhao.com/blog/mq/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
#message#
再学游泳
网络基础
  • 文章目录
  • 站点概览

xulz

时光,漫步

56 日志
3 分类
28 标签
    • 开源实现
    • 示例
© 2017 - 2023 XuLizhao 's Notes
Powered by - Hugo/ NexT
津ICP备17010344号-1
0%