MQ学习

1.MQ要解决的问题:

将同步通信改为异步通信。

同步通信:客户端发出调用后,必须等待服务器对象完成处理并返回结果后才能继续执行;

                客户端和服务器端对象的生命周期紧密耦合,客户端进程和服务器端进程都必须正常运行;

                点对点通信:客户端的一次调用只发送给某个单独的目标对象;

面向消息的中间件较好的解决了以上问题,发送者将消息发送给消息服务器,消息服务器将消息存放

在若干队列中,在合适的时候在将消息发送给接收者,这种模式下发送和接收是异步的,发送者无需

等待,二者的生命周期未必相同,发送消息的时候接收者不一定运行,接收消息的时候发送者不一定

运行。一对多通信,对于一个消息可以有多个接收者。(此段大概看一下就行,知道MQ有个生命好

处)。

2.PTP和PUB、SUB各自对应的目标对象

PTP:即点对点的消息模型,对应Query

PUB/SUB:发布订阅的消息模型,对应的是Topic。

2.JMS定义了5中不同的消息正文格式,以及调用的消息类型,允许你发送并接收一些不同形式的数据

(1)StreamMessage:java原始的数据流

(2)MapMessage:一套名称-值对

(3)TextMessage:一个字符串对象

(4)ObjectMessage:一个序列化的java对象

(5)BytesMessage:一个未解释的字节数据流

3.ActiveMQ支持的5种协议:

Tcp、AMQP、MQTT、OpenWire、Stompws。

ActiveMQ的时候需要自己写一个系统实现分流和排队

分流:他来确定某几个消息发送给哪些个消费者

排队:例如把消息发送个C1,C1消费完后在把消息发送给C2,C2消费完后在把消息发送给C3。

4.MQ使用的时候不能传大数据,比如传几M几十M的可以但是到了几百M的就不行了。



猜你喜欢

转载自blog.csdn.net/jialanshun/article/details/79337349