消息队列一览

简介: 谈谈互联网后端基础设施  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、重投等)、集群服务等。 

 

目录
相关文章
|
消息中间件 Java 开发工具
消息队列和应用工具产品体系-消息队列 Rocket 版的基本使用
消息队列和应用工具产品体系-消息队列 Rocket 版的基本使用
消息队列和应用工具产品体系-消息队列 Rocket 版的基本使用
|
6月前
|
消息中间件 SQL RocketMQ
消息队列 MQ产品使用合集之如何实现灰度
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
6月前
|
消息中间件 Java RocketMQ
消息队列 MQ产品使用合集之源码分析的文章有哪些可以参考
阿里云消息队列MQ(Message Queue)是一种高可用、高性能的消息中间件服务,它允许您在分布式应用的不同组件之间异步传递消息,从而实现系统解耦、流量削峰填谷以及提高系统的可扩展性和灵活性。以下是使用阿里云消息队列MQ产品的关键点和最佳实践合集。
|
6月前
|
消息中间件 监控 Java
消息队列 MQ产品使用合集之vipchannel的作用有哪些
阿里云消息队列MQ(Message Queue)是一种高可用、高性能的消息中间件服务,它允许您在分布式应用的不同组件之间异步传递消息,从而实现系统解耦、流量削峰填谷以及提高系统的可扩展性和灵活性。以下是使用阿里云消息队列MQ产品的关键点和最佳实践合集。
|
6月前
|
消息中间件 存储 RocketMQ
消息队列 MQ产品使用合集之如何防止丢数据
阿里云消息队列MQ(Message Queue)是一种高可用、高性能的消息中间件服务,它允许您在分布式应用的不同组件之间异步传递消息,从而实现系统解耦、流量削峰填谷以及提高系统的可扩展性和灵活性。以下是使用阿里云消息队列MQ产品的关键点和最佳实践合集。
|
7月前
|
消息中间件 存储 Kafka
MQ消息队列学习入门
MQ消息队列学习入门
120 0
|
7月前
|
消息中间件 存储 监控
消息队列进阶-3.消息队列常见问题解决方案
消息队列进阶-3.消息队列常见问题解决方案
169 0
|
消息中间件 存储 Kafka
消息队列和应用工具产品体系-消息队列 Kafka 版的特征及基本使用
消息队列和应用工具产品体系-消息队列 Kafka 版的特征及基本使用
消息队列和应用工具产品体系-消息队列 Kafka 版的特征及基本使用
|
消息中间件 存储 中间件
吐血总结——消息队列之RocketMQ知识梳理
消息队列主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。今天我就首先分析一下RocketMQ,目前公司用的也是这个,因此在进行一下梳理,加深一下印象。
274 0
|
消息中间件 中间件 调度
消息队列基础知识
什么是消息队列
109 0