消息中间件入门解析

消息队列属于大型网站系统中间件的重要组件,主要解决了应用耦合、异步消息、流量削峰等问题,对于网站实现高性能、可伸缩的架构有很大的帮助。

1. 常用的消息队列

ActiveMQ

Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可运行。

RabbitMQ

RabbitMQ是实现了高级消息队列协议(AMQP:Advanced Message Queuing Protocol)的开源消息代理(亦称面向消息的中间件)。RabbitMQ适用于对数据一致性和可靠性的场景,对吞吐量的场景要求其次。RabbitMQ服务器是用Erlang语言编写。

ZeroMQ

ØMQ (也拼写作ZeroMQ,0MQ或ZMQ)是一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库。它提供一个消息队列, 但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理(message broker)。该库设计成常见的套接字风格的API。

与RabbitMQ相比,ZMQ并不像是一个传统意义上的消息队列服务器,事实上,它也根本不是一个服务器,更像一个底层的网络通讯库,在Socket API之上做了一层封装,将网络通讯、进程通讯和线程通讯抽象为统一的API接口。简而言之socket之上、MQ之下。

Kafka

IBM介绍Kafka的博客

Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、ApacheStorm、Spark都支持与Kafka集成。适合产生大量数据的互联网服务的数据收集业务。

RocketMQ

RocketMQ 是阿里的开源产品,用 Java 语言实现,在设计时参考了 Kafka,并做出了自己的一些改进,消息可靠性上比 Kafka 更好。

image

2. MQ的应用场景

2.1 应用系统解耦

耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。

image

以简单的订单库存管理为例,客户下单后,需要通知减库存。传统的做法是订单系统调用库存系统的接口,以串行的方式等待库存系统的结果,这样订单系统和库存系统就有一种耦合关系。加入了消息队列机制后:

image

订单系统下单后,将消息写入队列并返回下单成功;库存系统订阅消息,获取了下单的消息,做相应的减库存操作;这样每个模块只需要做自己的工作,实现了订单系统和库存系统的解耦。

2.2 流量削峰

在高并发场景下,流量过大,导致服务负载过高甚至挂掉,为了解决这个问题,也可以引入消息队列:

image

用户的请求,服务器接收后,首先写入消息队列。假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面。

2.3 日志处理

将消息队列用在日志采集和处理中,解决大量日志传输的问题。

image

以上内容就是关于消息中间件入门解析的全部内容了,谢谢你阅读到了这里!

Author:zhaoyh

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分布式消息中间件实践PDF是指一本关于分布式消息中间件实践的电子书,通过PDF文件的形式呈现给读者。分布式消息中间件是一种用于实现分布式系统之间消息通信的技术,它可以提供可靠的消息传递、消息订阅和发布、消息队列等功能。 这本电子书主要介绍了分布式消息中间件的概念、原理、设计和实践。它从理论到实践的角度,详细讲解了分布式消息中间件的实现方式、架构设计、优化以及常见问题的解决方案。 在分布式系统中,消息中间件可以起到解耦、异步通信和削峰填谷等作用,可以提高系统的可伸缩性、可靠性和性能。而这本电子书提供了一些实践中的经验和教训,帮助读者更好地理解和应用分布式消息中间件。 这本电子书主要内容包括:分布式消息中间件的基本概念和原理、分布式消息中间件的常见实现方式、分布式消息中间件的架构设计、如何使用分布式消息中间件解决一些常见问题、如何进行分布式消息中间件的性能优化等。 通过阅读这本电子书,读者可以了解分布式消息中间件的基本概念和原理,了解分布式消息中间件的常见实现方式,学习分布式消息中间件的架构设计和性能优化,掌握使用分布式消息中间件解决实际问题的方法和技巧。这对于从事分布式系统开发和架构设计的人员来说是一本很有价值的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值