【高级JEE技术】JMS

ActiveMQ消息服务器。

ActiveMQ是apache的一种jms标准实现,支持两种模型,点对点发送消息以及发布订阅者模型。

为了规范JMS API,JMS为消息传送定义了很多概念:

JMS客户端----100%用Java编写的发送和接收消息的应用。

Non-JMS客户端----使用JMS提供者特定的客户端API而不是JMS API来发送和接收消息的应用。

JMS producer----创建和发送JMS消息的客户端应用。

JMS consumer----接收和处理JMS消息的客户端应用。

JMS provider----100%使用Java编写的JMS接口的实现。

JMS message----JMS最基础的概念;被JMS客户端发送和接收。

JMS domains----两者类型的消息传送,包括点对点(point-to-point)和发布/订阅(publish/subscribe)模式。

Administered objects----预配置的JMS对象,包含provider特定的配置信息。客户端通过JNDI来访问这些数据。

Connection factory----客户端使用连接工厂来连接JMS provider。

Destination----消息被投递的地方,以及接收者消息接收的来源。

除此之外,还有其它一些同样重要的概念。下一部分将深入这些概念并描述它们怎么构建整个JMS。

单点模型:

发布/订阅者模型:

 

启动ActiveMQ:

Activemq 在window环境下只需cd到bin目录下,输入activemq start 即可启动,注意电脑名不能为中文,否则会报错。

启动后打开web管理界面:http://localhost:8161/admin/

 

可以看到activeMQ几个关键信息:

Queue,Topic,Subscribers。

要创建jms程序,有几个必要的步骤:connectinFactory->connection->session->destination->cosumer/producer

 

点对点的JMS发送程序,使用queue作为连接,MQ会保存消息。

创建了一个名为"my-queue"的queue:

接受方程序:

 

发布/订阅模型,MQ不会显示保存数据,需要显示申明自己的clienID和持久订阅连接。

发送方,设置消息为持久性保存 setDeliveryMode(DeliveryMode.PERSISTENT)

接收方,需要显示声明自己是持久性订阅 createDurableSubscriber

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2015-09-15 11:35  damon-lin  阅读(187)  评论(0编辑  收藏  举报