jms
是发送消息的java中发送消息的中间件,包括5中数据流:
· StreamMessage -- Java原始值的数据流
· MapMessage--一套名称-值对
· TextMessage--一个字符串对象
· BytesMessage--一个未解释字节的数据流
数据流就是传递数据的了。
JMS即
Java消息服务
(Java Message Service)应用程序接口,是一个
Java平台
中关于面向
消息中间件
(MOM)的
API
,
用于在两个应用程序之间,或
分布式系统
中发送消息,进行异步通信
。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持
应用场景:
用途吧,一般人用不到,一般是
大型企业内部或与别的企业之间传递消息数据的手段
,比如公司boss发送消息(TextMessage),内容为"周末不放假,都来给我加班",每个员工可以通过Active
MQ
到端口61616接收消息,这是一种数据传输方式,不是么?因为用的少,所以很安全。
开源消息总线:
包括点对点和发布订阅,有很多功能,
比如有AB两人发短信,A监听A队列,B监听B队列,A向B队列发短信,B如果在开机状态就可以接收到短信,这叫点对点;
(
群发
)校长像所有师生发送一个通知,所有人都监听school这个通道,校长只向school这个通道发一条消息大家都可以接收到了;
队列的主要作用
消除高并发访问高峰,加快网站的响应速度
。
在
不使用
消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,会对数据库造成巨大的压力,同时也使得系统响应延迟加剧。
在
使用
队列后,
用户的请求发给队列后立即返回(当然不能直接给用户提示订单提交成功,京东上提示:您“您提交了订单,请等待系统确认”),再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库
。
由于消息队列的服务处理速度远快于数据库,因此用户的响应延迟可得到有效改善。