消息队列一览

简介: 谈谈互联网后端基础设施  http://www.rowkey.me/blog/2016/08/27/server-basic-tech-stack/ service之间的调用方式可以分为同步调用以及异步调用。

 

谈谈互联网后端基础设施  http://www.rowkey.me/blog/2016/08/27/server-basic-tech-stack/

 

service之间的调用方式可以分为同步调用以及异步调用。异步调用是怎么进行的?一种很常见的方式就是使用消息队列,调用方把请求放到队列中即可返回,然后等待服务提供方去队列中去获取请求进行处理,然后把结果返回给调用方即可(可以通过回调)。

异步调用就是消息中间件一个非常常见的应用场景。此外,消息队列的应用场景还有以下:

  • 解耦:一个事务,只关心核心的流程,需要依赖其他系统但不那么重要的事情,有通知即可,无须等待结果。

  • 最终一致性:指的是两个系统的状态保持一致,要么都成功,要么都失败,可以有一定的延迟,只要最终达到一致性即可。

  • 广播:这是消息队列最基本的功能。生产者只需要发布消息,无须关心有哪些订阅者来消费消息。

  • 错峰与流控:当上下游系统处理能力不同的时候就需要类似消息队列的方式做为缓冲区来隔开两个系统。

目前主流的消息队列软件,主要有以下几种:

  • ActiveMQ:Java中最为简单的消息队列,是对JMS的实现,没有规定消息的顺序、安全、重发等特性。

  • RabbitMQ:是对AMQP协议的实现,对于消息的顺序性、安全、重发等都做了很好的支持。比较适合不允许数据丢失、有事务需求的业务场景下的消息传输。

  • Kafka:是基于Log的消息队列,底层依赖于文件的顺序读取,是append-only的。适合对数据丢失不敏感、强调性能的一些海量日志传输场景中。是最近几年大数据领域很火的一个技术。 

  • ZeroMQ:是一个网络编程的Pattern库,将常见的网络请求形式(分组管理,链接管理,发布订阅等)模式化、组件化,简而言之socket之上、MQ之下。对于MQ来说,网络传输只是它的一部分,更多需要处理的是消息存储、路由、Broker服务发现和查找、事务、消费模式(ack、重投等)、集群服务等。 

 

目录
相关文章
|
7月前
|
消息中间件 Java 开发工具
消息队列和应用工具产品体系-消息队列 Rocket 版的基本使用
消息队列和应用工具产品体系-消息队列 Rocket 版的基本使用
97 1
消息队列和应用工具产品体系-消息队列 Rocket 版的基本使用
|
2月前
|
消息中间件 存储 弹性计算
消息队列RocketMQ版:基础消息收发功能体验
【2月更文挑战第1天】假期闲着无聊,随便体验一下。本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
|
3月前
|
消息中间件 存储 Kafka
MQ消息队列学习入门
MQ消息队列学习入门
77 0
|
3月前
|
消息中间件 存储 监控
消息队列进阶-3.消息队列常见问题解决方案
消息队列进阶-3.消息队列常见问题解决方案
68 0
|
7月前
|
消息中间件 存储 Kafka
消息队列和应用工具产品体系-消息队列 Kafka 版的特征及基本使用
消息队列和应用工具产品体系-消息队列 Kafka 版的特征及基本使用
421 0
消息队列和应用工具产品体系-消息队列 Kafka 版的特征及基本使用
|
8月前
|
消息中间件 存储 中间件
吐血总结——消息队列之RocketMQ知识梳理
消息队列主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。今天我就首先分析一下RocketMQ,目前公司用的也是这个,因此在进行一下梳理,加深一下印象。
166 0
|
8月前
|
消息中间件 中间件 调度
消息队列基础知识
什么是消息队列
78 0
|
9月前
|
消息中间件 容器
项目实战16——消息队列的意义
项目实战16——消息队列的意义
62 0
|
10月前
|
消息中间件 监控 容灾
消息队列基础
消息队列基础
73 0
|
11月前
|
消息中间件 监控 API
基于个人使用消息队列MQ产品的心得体会
随着互联网技术的不断发展,消息队列MQ(Message Queue)产品已经成为了现代软件架构中非常重要的一部分。这种技术可以通过异步处理来提高系统性能和可靠性,并且它还能够实现不同应用程序之间的解耦。在最近的几个月里,我尝试了使用一些流行的MQ产品进行开发,从而得出了一些有关其优点和缺点的心得体会。
217 2