首页 > 代码库 > 通俗深刻地认识JMS(即Java Message Service)

通俗深刻地认识JMS(即Java Message Service)

        JMS很早就有,网上更是如此,但是大多总结的不太全面不太具体,在现有学习资源基础上结合自己的体悟,现重新总结一下:

        JMS全称为Java Message Service(即Java 消息服务),它是J2EE技术规范之一(它属于Java平台上有关面向消息中间件(MOM)的技术规范),用于访问消息系统(或向消息系统发送消息或向消息系统接收消息),最终实现不同应用系统之间的消息交互。呵呵呵,当你读到这里的时候恐怕会心里嘀咕——什么它妈的“消息系统”?我们知道通过同一套JDBC接口可以实现不同系统访问同一个关系型数据库,那么通过JMS接口我们就可以实现不同系统访问同一个“消息系统”,说的更直白一点儿“消息系统”的地位就相当于上面提到的数据库:关系型数据库是一个运行在计算机或服务器上的软件(比如Oracle、MySQL或SQL Server);消息系统也是一个运行在计算机或服务器上的软件(比如Apache的ActiveMQ或IBM的WebSphere MQ)。上面这句话不仅点出了什么是“消息系统”,也解释了究竟什么是JMS——JMS 扮演的角色与JDBC 很相似:JDBC 提供了一套用于访问各种不同关系型数据库的公共接口(这些接口由各个研发数据库软件的公司具体实现,只需使用他们的jar包进行开发即可),而JMS 提供了一套用于访问不同消息系统的接口(这些接口由各个研发消息系统软件的公司具体实现,只需使用他们的jar包进行开发即可)。
        使用JMS 的应用程序被称为JMS 客户端,保存消息与传递消息的“消息系统”被称为JMS Provider,JMS 应用是由“多个JMS 客户端”(发送消息的JMS 客户端被称为生产者(producer),而接收消息的JMS 客户端则被称为消费者(consumer);同一JMS 客户端既可以是生产者也可以是消费者)和一个JMS Provider 构成的业务系统。JMS能够让我们通过消息收发服务(即JMS Provider,有时也称为消息中介程序或称为消息服务器)从一个应用程序向另一个应用程序发送消息。
        JMS 的编程过程很简单,概括为:应用程序A (消息生产者)发送一条消息到消息服务器(比如:ActiveMQ)的某个目的地(Destination),然后消息服务器(比如:ActiveMQ)把消息转发给应用程序B(消息使用者)。因为应用程序A 和应用程序B 没有直接的代码关连,所以两者实现了解偶。如下图:

技术分享



未完。。。。。。。



通俗深刻地认识JMS(即Java Message Service)