消息中间件学习

MQ是一种消息中间件,用于限流削峰、异步解耦和数据收集。文中提到了ActiveMQ、RabbitMQ、Kafka、RocketMQ等MQ产品,其中Kafka以其高吞吐量适用于大数据实时计算。此外,JMS作为流行的消息传递标准,有IBMMQSeries、WebLogic、SonicMQ等实现。
摘要由CSDN通过智能技术生成

1. MQ概述

1.1 MQ简介

MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程的API的软件系统;消息即数据。一般消息的体量不大。

1.2 MQ用途

  1. 限流削峰 :MQ可以将系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统被压垮;
    在这里插入图片描述
  2. 异步解耦:上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与并发度,且系统耦合度太高。而异步调用会解决这些问题。 所以在两层之间若要实现由同步到异步的转化,一般做法就是在这两层之间添加一个MQ层;
    在这里插入图片描述
  3. 数据收集:分布式系统会产生海量数据流,如:业务日志,监控数据,用户行为等,针对这些数据流进行实时或批量采集汇总,然后对这些数据流进行大数据分析,这是当前互联网平台的必备技术;通过MQ完成此类数据收集是最好的选择;

1.3 常见的MQ产品

  1. ActiveMQ:使用Java开发的一款MQ产品。早期很多公司与项目使用,但现在社区活跃度已经很低,现在项目中很少使用;
  2. RabbitMQ:使用ErLang语言开发的一款MQ产品,其吞吐量较Kafka与RocketMQ要低,而且由于其不是Java语言开发,所以公司内部对其实现定制化开发难度较大;
  3. Kafka:使用Scala/Java语言开发的一款MQ产品,最大特点是高吞吐量,常用于大数据领域的实时计算,日志采集等场景,其没有遵循任何常见的MQ协议,而是使用自研协议;
  4. RocketMQ:使用Java语言开发的一款MQ产品,经过阿里数年双十一的考验,性能与稳定性很高,没有遵循任何常见的MQ协议,而是使用自研协议;
  5. 目前许多厂商采用并实现了JMS API,现在,JMS产品能够为企业提供一套完整的消息传递功能,下面是一些比较流行的JMS商业软件和开源产品。
    (1)IBM MQSeries
    IBM MQ系列产品提供的服务使得应用程序可以使用消息队列进行相互交流,通过一系列基于Java的API,提供了MQSeries在Java中应用开发的方 法。它支持点到点和发布/订阅两种消息模式,在基本消息服务的基础上增加了结构化消息类,通过工作单元提供数据整合等内容。
    (2)WebLogic
    WebLogic是BEA公司实现的基于工业标准的J2EE应用服务器,支持大多数企业级JavaAPI,它完全兼容JMS规范,支持点到点和发布/订阅消息模式,它具有以下一些特点:
  1. 通过使用管理控制台设置JMS配置信息;
  2. 支持消息的多点广播;
  3. 支持持久消息存储的文件和数据库;
  4. 支持XML消息,动态创建持久队列和主题。
    (3)SonicMQ
    SonicMQ是Progress公司实现的JMS产品。除了提供基本的消息驱动服务之外,SonicMQ也提供了很多额外的企业级应用开发工具包,它具有以下一些基本特征:
  5. 提供JMS规范的完全实现,支持点到点消息模式和发布/订阅消息模式;
  6. 支持层次安全管理;
  7. 确保消息在Internet上的持久发送;
  8. 动态路由构架(DRA)使企业能够通过单个消息服务器动态的交换消息;
  9. 支持消息服务器的集群。
    (4)Active MQ
    Active MQ是一个基于Apcache 2.0 licenced发布,开放源码的JMS产品。其特点为:
  10. 提供点到点消息模式和发布/订阅消息模式;
  11. 支持JBoss、Geronimo等开源应用服务器,支持Spring框架的消息驱动;
  12. 新增了一个P2P传输层,可以用于创建可靠的P2P JMS网络连接;
  13. 拥有消息持久化、事务、集群支持等JMS基础设施服务。
    (5)OpenJMS
    OpenJMS是一个开源的JMS规范的实现,它包含以下几个特征:
  14. 它支持点到点模型和发布/订阅模型;
  15. 支持同步与异步消息发送;
  16. 可视化管理界面,支持Applet;
  17. 能够与Jakarta Tomcat这样的Servlet容器结合;
  18. 支持RMI、TCP、HTTP与SSL协议。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chuxuezhe_987

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值