消息
就是信息。浏览器发送大量消息对服务器造成较大负荷。服务器将大量消息放入一种容器,再由子服务器去处理消息。这个容器称为消息队列。
发送方称为生产都,接收方称为消费者。
消息有两种:
同步消息,发送消息后接收反馈。
异步消息,不需要接收 反馈。(常用)
异步消息技术有JMS规范,AMQP协议。JMS只规范了java语言对于消息的API的实现。其实现有redis,RabbitMQ。AMQP协议统一了不同系统(技术)在网络交换消息的数据格式,其实现有RabbitMQ,RocketMQ。两者不冲突,规定的内容不一样。
JMS消息模型:
点对点模型:队列的消息只能被一个消费者消费。
发布订阅模型:消息可以被多个消费者消费,生产者和消费者完全独立,不需要感知对方存在。
JMS消息种类有很多,其中有一个BytesMessage。
AMQP消息模型:
direct exchange
topic exchange
AMQP消息种类:byte[]
消息队列
分布式情况下,多个服务可以有序获取消息的公共容器。
常用应用场景:
1,异步处理:同时处理不想干的多个请求。
2,应用解耦:对于消息的调用者来讲,关注于数据的输入与输出,处理过程不在考虑范围,降低了多个服务之间的耦合性。
3,流量控制(削锋):面对大流量时,先保存数据,然后有序进行处理,避免该时刻集中处理的高强度压力造成的问题故障。