码迷,mamicode.com
首页 > 其他好文 > 详细

【高级JEE技术】JMS

时间:2015-09-15 12:50:31      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

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

技术分享

【高级JEE技术】JMS

标签:

原文地址:http://www.cnblogs.com/AlwaysFixBug/p/4809761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!