消息队列:第一章:消息队列简介

消息队列简介

   消息队列,也叫消息中间件。消息的传输过程中保存消息的容器。

   消息队列都解决了什么问题?

1、异步

2、并行

3、解耦

4、排队

5 弊端:不确定性和延迟

消息模式

点对点

订阅

消息队列工具 ActiveMQ

1 、简介

同类产品: RabbitMQ 、 Kafka、Redis(List)

 

对比RabbitMQ

性能伯仲之间,基本上可以互相替代。最主要区别是二者的协议不同RabbitMQ的协议是AMQP(Advanced Message Queueing Protoco),而ActiveMQ使用的是JMS(Java Messaging Service )协议。

JMS是针对Java体系的传输协议,队列两端必须有JVM,所以如果开发环境都是java的话推荐使用ActiveMQ,可以用Java的一些对象进行传递比如Map、BLob、Stream等。

AMQP通用行较强,非java环境经常使用,传输内容就是标准字符串

RabbitMQ用Erlang开发,安装前要装Erlang环境,比较麻烦。ActiveMQ解压即可用不用任何安装。

 

对比KafKa

Kafka性能超过ActiveMQ等传统MQ工具,集群扩展性好。

弊端是: 

在传输过程中可能会出现消息重复的情况,不保证发送顺序

一些传统MQ的功能没有,比如消息的事务功能。所以通常用Kafka处理大数据日志。

对比Redis

     其实Redis本身利用List可以实现消息队列的功能,但是功能很少,而且队列体积较大时性能会急剧下降。对于数据量不大、业务简单的场景可以使用。

原文地址:https://www.cnblogs.com/javawxid/p/12812023.html