通俗理解ActiveMQ

来源:互联网 发布:js舞蹈培训中心好不好 编辑:程序博客网 时间:2024/05/22 13:54

jms是发送消息的java中发送消息的中间件,包括5中数据流:
· StreamMessage -- Java原始值的数据流
· MapMessage--一套名称-值对
· TextMessage--一个字符串对象
· ObjectMessage--一个序列化的 Java对象
· BytesMessage--一个未解释字节的数据流
数据流就是传递数据的了。

JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持

应用场景:
用途吧,一般人用不到,一般是大型企业内部或与别的企业之间传递消息数据的手段,比如公司boss发送消息(TextMessage),内容为"周末不放假,都来给我加班",每个员工可以通过ActiveMQ到端口61616接收消息,这是一种数据传输方式,不是么?因为用的少,所以很安全。

开源消息总线:
包括点对点和发布订阅,有很多功能,
比如有AB两人发短信,A监听A队列,B监听B队列,A向B队列发短信,B如果在开机状态就可以接收到短信,这叫点对点;
(群发)校长像所有师生发送一个通知,所有人都监听school这个通道,校长只向school这个通道发一条消息大家都可以接收到了;

队列的主要作用
消除高并发访问高峰,加快网站的响应速度
不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,会对数据库造成巨大的压力,同时也使得系统响应延迟加剧。
使用队列后,用户的请求发给队列后立即返回(当然不能直接给用户提示订单提交成功,京东上提示:您“您提交了订单,请等待系统确认”),再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库
由于消息队列的服务处理速度远快于数据库,因此用户的响应延迟可得到有效改善。

0 0
原创粉丝点击