Bootstrap

java 编程技术异步通信_java异步消息通知机制

2、并行

3、解耦

4、排队(削峰填谷)

5 弊端:不确定性和延迟

解决方案:最终一致

消息模式

点对点

订阅

三 消息队列工具 ActiveMQ

1 、简介

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

1.1 对比 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 解压即可用不用任何安装。

1.2 对比 KafKa

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

弊端是:

在传输过程中可能会出现消息重复的情况,

不保证发送顺序

一些传统 MQ 的功能没有,比如消息的事务功能。

所以通常用 Kafka 处理大数据日志。

1.3 对比 Redis

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

尚硅谷 Java 开发培训全新体系<

;