去年是我尝试JMS的时候。 背后的想法和概念让我有些困惑,但是当我知道它的用途后,我很快就掌握了它。 在本文中,我将展示使用Apache ActiveMQ作为后端使用Java开发简单的生产者/消费者的基础。

让我们首先从概念开始,这是一个简单的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

使用Apache ActiveMQ的JMS开发基础相关推荐

  1. 使用apache的activemq集合JMS处理异步消息

    为什么80%的码农都做不了架构师?>>>    1:先去apache下载 http://activemq.apache.org/ ,大约有25M,要有点耐心 直接打开就可以使用:当然 ...

  2. Apache ActiveMQ教程

    一.特性及优势1.实现JMS1.1规范,支持J2EE1.4以上2.可运行于任何jvm和大部分web容器(ActiveMQ works great in any JVM)3.支持多种语言客户端(java ...

  3. 了解 Apache ActiveMQ

    这个是消息中间件:如果做消息开发可能会用到: Apache ActiveMQ简介 简介 Apache ActiveMQ是Apache软件基金会的一个开源项目,是一个基于消息的通信中间件.ActiveM ...

  4. IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列

    1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...

  5. ActiveMQ(07):ActiveMQ结合Spring开发--建议

    1.Camel框架支持大量的企业集成模式,可以大大简化集成组件间的大量服务和复杂的消息流.而Spring框架更注重简单性,仅仅支持基本的最佳实践. 2.Spring消息发送的核心架构是JmsTempl ...

  6. Apache ActiveMQ

    Today we will lean how to download and install Apache ActiveMQ Server and create a Queue or Topic in ...

  7. Apache ActiveMQ实战(1)-基本安装配置与消息类型

    ActiveMQ简介 ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的.可扩展的.稳定的和安全的企业级消息通信.ActiveMQ使用Apache ...

  8. Web开发(一)·期末不挂之第一章·Web开发基础(不背就挂的基础知识)

    Web开发基础 一.网站的访问过程 ✪✪✪ 二.Web应用 ✪✪✪ 三.其他 一.网站的访问过程 ✪✪✪ 网址: URL(互联网上标准资源的地址)组成部分: 协议:http:// 域名:-com/cn ...

  9. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息 ...

最新文章

  1. MySQL面试题 | 附答案解析(三)
  2. 【camera】5.相机内嵌图像处理(ISP)介绍
  3. Angular响应式表单及表单验证
  4. 2007图灵奖得主离开了:模型检测先驱Edmund Clarke因新冠逝世
  5. .NET中常见的 IL 指令集
  6. office自定义安装选项_如何自定义Office 2013中功能区上的现有选项卡
  7. c语言模拟试题快速排序,快速排序(东软喜欢考类似的算法填空题,又如堆排序的算法等)...
  8. [laravel]用户异地登录后踢掉之前的登录
  9. loadrunner常见问题及解决方案
  10. 腐蚀rust图纸怎么找_怎么解决变压器油滤油机的温差效应?在这里可以得到解决...
  11. 【三维路径规划】基于matlab改进粒子滤波无人机三维路径规划【含Matlab源码 1269期】
  12. NP实验-1 华为MSTP+VRRP练习题
  13. 易语言使用超级模块 全局热键
  14. Cognitive Surplus 认知盈余
  15. Java的静态数组和动态数组
  16. 机器学习之随机森林算法
  17. c++ 取模和求余运算
  18. 苹果计算机怎样恢复桌面,mac桌面整理_使Mac桌面恢复整洁的四种技巧
  19. Dx unsupported class file version 52.0
  20. 英语四级口语考试计算机考吗,听说四六级改革了,那英语四级考口语吗?

热门文章

  1. jdk 加密_使用JDK的密码流的加密怪癖(以及该怎么做)
  2. idea内置junit5_JUnit 5和Selenium –使用Selenium内置的`PageFactory`实现页面对象模式
  3. 自动化测试特定区域滑动_自动化用户特定实体的访问控制
  4. 清除java_如何在Java地毯下有效地清除问题
  5. 视图中::text_新CalendarFX视图:MonthGridView!
  6. junit4 集成测试_使用JUnit规则进行干净的集成测试
  7. 随机数发生器怎么用_用随机数发生器射击自己的脚
  8. primefaces_PrimeFaces:在动态生成的对话框中打开外部页面
  9. 游戏 服务器 微服务_整体服务器与微服务
  10. Spring Boot删除嵌入式Tomcat服务器,启用Jetty服务器