使用Apache ActiveMQ的JMS开发基础

去年是我尝试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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373498.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PLSQL 经常自动断开失去连接的解决过程

问题背景&#xff1a; 情况是这样的&#xff0c;很多开发同事的PLSQL上班时间开着8个小时&#xff0c;有时候他们出去抽烟后或者中午吃完饭&#xff0c;回来在PLSQL上面执行就报错无响应&#xff0c;然后卡住了半天动弹不了&#xff0c;非得重新登录plsql才生效&#xff0c;我猜…

使用Cobertura,JUnit,HSQLDB,JPA涵盖您的测试

你好&#xff01;你好吗&#xff1f; 今天让我们谈谈一个非常有用的工具&#xff0c;名为“ Cobertura”。 该框架与我们在另一篇文章中看到的Emma框架具有相同的功能。 Cobertura和Emma之间的主要区别在于Cobertura显示带有图形的简历页面。 如果要查看有关该主题的其他主题…

C# 基础知识总结

要学好C#&#xff0c;基础知识的重要性不言而喻&#xff0c;现将常用到的一些基础进行总结&#xff0c;总结如下&#xff1a; 01. 数据类型转换&#xff1a; 强制类型转换(Chart--> int): char crA; int i (int)(cr); 02. 委托/匿名函数/Lamda表达式&#xff1a; 委托是匿…

使用Jolokia和JMX进行客户端服务器监视

Java监视工具的选择非常广泛&#xff08;由Google提供的随机选择和顺序&#xff09;&#xff1a; javamelody 压力探头 JVisualVM 控制台 贾蒙 Java JMX Nagios插件不适用 此外&#xff0c;还有各种专用工具&#xff0c;例如ActiveMQ &#xff0c; JBoss &#xff0c; Qu…

图书管理系统数据字典_2. 结构化——数据字典

返回目录&#xff1a;Chilan Yuk&#xff1a;软件工程分析设计图库目录​zhuanlan.zhihu.com一、基本知识用于定义数据流和数据存储的结构&#xff0c;并给出构成所给的数据流和数据存储的各数据项的基本数据类型。数据字典中应该包括关于数据的如下信息一般信息&#xff08;名…

重复次数最多的 子串_每日算法系列【LeetCode 424】替换后的最长重复字符

题目描述给你一个仅由大写英文字母组成的字符串&#xff0c;你可以将任意位置上的字符替换成另外的字符&#xff0c;总共可最多替换 k 次。在执行上述操作后&#xff0c;找到包含重复字母的最长子串的长度。示例1输入&#xff1a; s "ABAB", k 2 输出&#xff1a; …

python基础(一)简单入门

一.第一个python程序 1.交互式编程 直接在命令行里面输入python即可进入python交互式命令行&#xff0c;linux下一样&#xff1a; 在 python 提示符中输入以下文本信息&#xff0c;然后按 Enter 键查看运行效果&#xff1a; 2.脚本式编程 把代码都写到文件里面&#xff0c;然后…

unbuntu 启动任务脚本_Ubuntu下服务启动脚本编写

像Nginx、MySQL等服务一样&#xff0c;在后台运行自己编写的抓取天气信息的Python脚本。1.以管理员权限新建一个服务脚本文件sudo vim /etc/init.d/weather_service2.用下列模板修改该服务脚本文件#!/bin/bash### BEGIN INIT INFO## Provides: weather_service# Required-Start…

iOS开发工具——网络封包分析工具Charles

作者 唐巧 发布于 2013年12月9日 | 1 讨论 分享到&#xff1a;微博微信FacebookTwitter有道云笔记邮件分享稍后阅读我的阅读清单简介 Charles是在Mac下常用的截取网络封包的工具&#xff0c;在做iOS开发时&#xff0c;我们为了调试与服务器端的网络通讯协议&#xff0c;常常需要…

Java Web托管选项流程图

我经常被问到的一个问题是在何处以及如何托管Java Web应用程序。 可以在带有嵌入式服务器的Eclipse中创建它很好&#xff0c;但是如何将它带给人们呢&#xff1f; 长期以来&#xff0c;对于发烧友的程序员一直没有答案。 只有昂贵和超大型的选择。 事情最近变了&#xff0c;但这…

使用Regions ADF 11g进行Master Detail CRUD操作

你好 此示例演示了如何使用Regions在表之间创建Master Detail关系。 区域的主要目的是可重用性的概念。 使用区域和有限的任务流&#xff0c;我们可以将页面重用到许多其他页面中&#xff0c;以保持相同的功能并采用更简洁的方法。 下载示例应用程序。 在此示例中&#xff0c;…

win7 mysql php apache myadmin_windows下Apache+mysql+php+phpMyAdmin的安装及配置 | 学步园

1、下载Apache ( httpd-2.2.25-win32-x86-no_ssl.msi )http://httpd.apache.org/download.cgi#apache24根据提示安装到路径(建议自定义路径)&#xff0c;NetWork Domain和Server Name都输入 localhost(访问时使用的域名);2、下载mysql (mysql-5.5.34-win32.msi )http://dev.m…

具有NetBeans,嵌入式GlassFish,JPA和MySQL数据源的Arquillian

这是一个偶然的帖子。 我一直在研究交易CDI观察者&#xff0c;并尝试使用嵌入式GlassFish对它进行一些集成测试。 但是令人惊讶的是&#xff0c;这种方法不能很好地工作&#xff0c;我仍在弄清楚&#xff0c;使用普通的嵌入式GlassFish时问题出在哪里。 同时&#xff0c;我转到…

jsp mysql 音乐网站_Maven+JSP+SSM+Mysql实现的音乐网站

项目简介本系统基于MavenJSPSSMMysql实现的音乐网站。主要实现的功能有音乐播放、下载、上传等几个模块。难度等级&#xff1a;中等技术栈编辑器Eclipse Version: 2020-03 (4.15.0)前端技术基础&#xff1a;htmlcssJavaScript框架&#xff1a;JQueryBootstrap后端技术SpringSpr…

持久化API(JPA)系列(三)实体Bean的开发技术-建立与数据库的连接

在EJB 2.x中。EJB有3种类型的Bean。各自是会话Bean&#xff08;Session Bean&#xff09;、消息驱动Bean&#xff08;Message-Driven Bean&#xff09;和实体Bean&#xff08;Entity Bean&#xff09;。 随着EJB 3的推出&#xff0c;EJB2.x中的实体Bean逐渐被JPA规范所替代&…

【SAP业务模式】之ICS(四):组织单元的配置

SAP的ICS业务后台配置主要有以下几个配置点&#xff1a; 1、组织单元的配置&#xff08;公司代码、销售组织、工厂、采购组织等&#xff09;&#xff1b; 2、主数据的部分&#xff1b; 3、订单和开票的定价过程&#xff1b; 4、开票输出类型&#xff1b; 5、公司间发票的配置&a…

Twitter4j和Esper:在Twitter上跟踪用户情绪

对于复杂事件处理和Twitter API的新手&#xff0c;我希望这是一个简短的教程&#xff0c;可以帮助他们Swift起步。 管理大数据并从中挖掘有用的信息是当前技术中最热门的讨论主题。 来自Twitter&#xff0c;Facebook和Linkedin等社交网络的半结构化数据的爆炸式增长使Hadoop&am…

webase crud查看所有表_Laravel-Gii 可视化代码生成工具 CRUD +GUI

Laravel-Gii 可视化代码生成工具 CRUD GUI适用于快速B端后台开发&#xff0c;根据MySQL的表结构生成对应的Model、Observer、Controller、View、Route等相关项目文件[TOC]注意因为是解析MySQL的表结构&#xff0c;并且根据字段生成模板&#xff0c;所以目前生成的Model类时只支…

20145231第二周Java学习笔记

20145231 《Java程序设计》第2周学习总结 教材学习内容总结 本周的学习采用的依然是先看课本&#xff0c;再看视频&#xff0c;然后实践敲代码&#xff0c;最后根据学习笔记总结完成博客。 第三章&#xff1a;基础语法 知识点比较多比较零碎&#xff0c;整理的都是实际操作中可…

JavaFX 2.0和Scala,像牛奶和饼干

JavaFX 2.0和Scala都是很好的技术&#xff0c;但是一起使用时效果会更好。 JavaFX 2.0是一种功能强大的富客户端技术&#xff0c;具有先进的图形&#xff0c;动画和媒体功能。 Scala是一种简单但功能强大的语言&#xff0c;具有用于编写特定于域的语言&#xff08;DSL&#xff…