jms中定义了三者:消息的发送者、消息的接收者、JMS服务器在一些例子程序中,只有两方,客户端,即发送消息的人,还有就是实现了MessageListener 的程序,这个都是放在服务器
上,那么这里的消息接收者,JMS服务器 是不是就是同一个呢还有,什么时候使用jms呢?比如我写的的一个基于EJB的应用A,如果系统A有多台服务器,那么发送消息不就是给自己发送吗?还要用到jms? jms是不是用于系统A给一个远端的系统B发送消息的?
上,那么这里的消息接收者,JMS服务器 是不是就是同一个呢还有,什么时候使用jms呢?比如我写的的一个基于EJB的应用A,如果系统A有多台服务器,那么发送消息不就是给自己发送吗?还要用到jms? jms是不是用于系统A给一个远端的系统B发送消息的?
经典的例子:
你在注册CSDN论坛的时候,需要你的邮箱验证,发送邮件可能不是同步操作的(也就是说你不需要等待Web服务器邮件发送完成了才能进行下面的操作)
Web服务器发送一条消息(命令)给JMS服务器,消息的接收者(专门发送邮件的应用程序)从JMS服务器中接收消息,然后发邮件到你的邮箱。
JMS当然可以用在一台机器或者同一个系统,作为异步应用之间的通讯用。
比如A、B两个应用都在一台服务器上。A应用去调用B应用,如果B应用处理极慢,不采用异步手段,那么A一直等待B的响应,A也就卡死了。如果之间采用JMS通讯传输指令,那A只管把命令丢到JMS队列,A立刻可以处理新的事务了。
B收到JMS的消息去执行,啥时候做完了再把反馈信息通过JMS丢回给A就行了。A也就知道原先给B的事务已经做完了。这就达成了应用的异步调用。
SSH、Ant、IBatis、jsf、seam、portal、设计模式、
ZK、DWR、ajax、CSS 、oracle
群号:65670864 欢迎加入