让我们首先从概念开始,这是一个简单的JMS架构:
必须首先创建连接工厂才能连接到目标。 客户端(应用程序)必须创建一个连接实例并创建一个生产者类,以便它可以创建将发送到目的地的消息。 消息使用者类(外部应用程序)必须订阅目标,才能使用生产者产生的消息。
考虑一下这种情况(如果您紧急需要示例,请跳过此部分):您想开发一个问答应用程序,希望它对用户非常有效。 您不希望用户登录并登录网站来检查问题和答案,而是希望在遇到任何问题或找到新答案时尽快通知他们。 然后,您想到了放置桌面应用程序并放置通知栏的方式,这样,将通知用户,他们可以答复或检查新存储的数据。
显然,您不希望用户单击“刷新”只是为了检查新数据,您不允许这样做吗? 那对于使用它的任何人来说都是低效率的。 轮询怎么样? 使用goog方法,但这可能会分配过多的资源。 您想要的是每次将新数据推入数据库时向客户端创建一个自动拉取请求。 执行客户端推送的服务器。
像这样思考:将消息引发到数据库后,同一条消息将引发到消息目标(主题或队列)上,并将其发送给所有订阅目标的客户端。 就像订阅时事通讯一样,您作为用户已订阅,并且每次发送时事通讯时,所有用户都将收到时事通讯电子邮件。
这只是JMS在您的开发方案中可以解决的众多可能性之一。 显然,使用此功能,您可以想象它有多有用。
那么,我如何显示一个小例子来说明如何做到这一点呢?,只需按照以下说明进行操作,然后自己检查一下即可:
首先,下载并设置ActiveMQ( http://activemq.apache.org/ )-“ Apache ActiveMQ ™是最流行,功能最强大的开源消息传递和集成模式服务器。 ” –根据其网站。 实际上,除了强大而开放的源代码之外,我不会争辩说,它是迄今为止我使用过的最轻便的消息传递服务器(我已经使用WeblogicMQ并尝试了JBossMQ)。
下载源代码后,将其放在您喜欢的目录中并运行activemq命令。 该文件位于<activemq root> / bin。
运行ActiveMQ之后,您现在应该可以访问MQ Admin Console网站。 在这里可以看到MQ的所有指标,包括使用者,主题,队列,消息等。默认情况下,它使用端口8161(http:// localhost:8161 /)。
如果您可以看到上面的站点,则意味着您已经成功启动了Apache ActiveMQ! 现在开始发展我们的客户。 在本文中,我将使用Eclipse开发代码,但是您可以使用自己喜欢的任何IDE。
打开Eclipse并创建一个新的Java项目。
获取并将activemq-all- <version> .jar文件导入您的项目。 请注意,这是重要的一步,因为我们将使用jar中的类来访问MQ管理服务。 培养生产者:–生产者将是发送实际消息的人。
制片人
开发消费者–消费者将是接收生产者创建的消息的人。
消费者
在此处下载完整项目。
请享用!
参考: JCG合作伙伴 Alvin Reyes 使用Apache ActiveMQ的JMS开发基础 在Alvin“ Jay” Reyes博客上 。
翻译自: https://www.javacodegeeks.com/2012/03/jms-development-fundamentals-using.html