文档章节

1.4 运行你的第一个ActiveMQ例子

 竹青花黄
发布于 2014/10/10 09:14
字数 1331
阅读 54
收藏 0

1.4 运行你的第一个ActiveMQ例子

前一节介绍如何在一个终端启动ActiveMQ。
而在这节,你需要两个以上的终端运行ActiveMQ的例子。
在第二个终端,进入example目录,看看如以下清单所示的内容。

Listing 1.4 List the contents of the ActiveMQ example directory
[apache-activemq-5.4.1]$ cd ./example/
bsnyder@mongoose [example]$ ls -1
build.xml
conf
perfharness
ruby
src
transactions

example目录包含几个不同的项目。下面是各项的简介:

build.xml——为使用Java示例所需的Ant配置文件。

conf——conf目录保存为使用Java示例所需的配置信息。

perfharness——perfharness目录包含一个脚本运行IBM JMS性能工具(与ActiveMQ对照)。

ruby——ruby目录包含使用ActiveMQ结合ruby的一些示例和STOMP连接器。

src——Java示例所在目录,build.xml需要的文件。

transactions——transactions目录保存来自Sun的JMS教程的TransactedExample的ActiveMQ实现。


使用第二个终端,启动JMS订阅者如下所示。

Listing 1.5 Start up the ActiveMQ consumer example

[example]$ ant consumer
Buildfile: build.xml
init:
compile:
consumer:
[echo] Running consumer against server at $url =
tcp://localhost:61616 for subject $subject = TEST.FOO
[java] Connecting to URL: tcp://localhost:61616
[java] Consuming queue: TEST.FOO
[java] Using a non-durable subscription
[java] Running 1 parallel threads
[java] [Thread-2] We are about to wait until we consume:
2000 message(s) then we will shutdown

这命令编译Java示例并启动一个简单的JMS订阅程序。
正如你所看到的输出,这个订阅程序:

■使用TCP协议连接到代理(TCP:/ / localhost:61616)

■监视一个名为TEST.FOO的队列

■使用非持久订阅

■接收2000条消息之后关闭


基本上,JMS订阅者连接到ActiveMQ并等待消息。
现在,您可以发送一些消息到TEST.FOO。

在第三终端,进入example目录并启动JMS生产者如下所示。
这将立即开始发送消息。

Listing 1.6 Start up the ActiveMQ producer example

[example]$ ant producer
Buildfile: build.xml
init:
compile:
producer:
[echo] Running producer against server at $url =
tcp://localhost:61616 for subject $subject = TEST.FOO
[java] Connecting to URL: tcp://localhost:61616
[java] Publishing a Message with size 1000 to queue: TEST.FOO
[java] Using non-persistent messages
[java] Sleeping between publish 0 ms
[java] Running 1 parallel threads
[java] [Thread-2] Sending message: 'Message: 0 sent at: Thu Oct 14
21:24:07 MDT 2010 ...'
[java] [Thread-2] Sending message: 'Message: 1 sent at: Thu Oct 14
21:24:07 MDT 2010 ...'
[java] [Thread-2] Sending message: 'Message: 2 sent at: Thu Oct 14
21:24:07 MDT 2010 ...'

尽管为了可读性略去了输出,但你可以从它的输出中看出,命令启动一个简单的JMS生产者:

■使用TCP连接器连接到代理(TCP:/ / localhost:61616)

■向名为TEST.FOO的队列发布消息

■使用非持久的消息

■持续不断地发送消息

JMS生产者一旦被连接,随后将发送2000条消息并关闭。
这正好是订阅者在关闭之前所等待的消息的数量。
消息被终端三的生产者发送,返回终端二并监视JMS订阅者当它消化这些消息的时候。
下面是你在终端二看到的输出:

[java] [Thread-2] Received: 'Message: 0 sent at: Thu Oct 14 21:23:56
MDT 2010 ...' (length 1000)
[java] [Thread-2] Received: 'Message: 1 sent at: Thu Oct 14 21:23:56
MDT 2010 ...' (length 1000)
[java] [Thread-2] Received: 'Message: 2 sent at: Thu Oct 14 21:23:56
MDT 2010 ...' (length 1000)
...
[java] [Thread-2] Received: 'Message: 1999 sent at: Thu Oct 14 21:23:56
MDT 2010 ...' (length 1000)

为了简洁部分输出已经被省略了,实际上订阅者收到2000消息并关闭了自身。
与此同时,订阅者和生产者应该都已关闭,但终端一的ActiveMQ代理仍在运行。
再回头看终端一,你会发现ActiveMQ似乎没有变化。
这是因为默认日志配置不输出任何绝对重要信息之外的日志。
当消息被发送和接收的时候,如果你想输出更多信息,你可以这样对日志配置做如下调整。
日志相关内容将在第14章进一步介绍。

那你在这节学到了什么呢?
通过使用ActiveMQ的Java示例,已经证明代理启动并运行,可以调解消息了。
内容不多,但这是重要的第一步。
如果你能够成功运行的Java示例,说明你的机器上没有网络问题并且ActiveMQ能正确运行。
如果你无法成功运行的Java示例,你需要解决这个问题。
如果你需要一些帮助,去ActiveMQ邮件列表寻找是最佳方式。
这些例子只是让你开始,但可以用来测试许多场景。
在这本书的其余部分,几个围绕一些共通用户案例的例子将被用来演示ActiveMQ及其特性。
这些例子将在第三章进一步解释。


1.5 总结

ActiveMQ是多才多艺的,易于使用的消息传递中间件。
您了解了一些ActiveMQ的特性,通过这本书以及一些可以应用ActiveMQ的场景。
本章中介绍的场景都是部署在世界各地的企业中的实际用例。
JMS规范被设计应用于这些场景的业务程序。
对于那些不熟悉JMS规范,或是想进一步了解它的人,下一章涵盖了企业消息传递机制和JMS的概述。
如果你已经精通这两个课题,你可以跳到第3章继续探索这本书的例子。

© 著作权归作者所有

粉丝 0
博文 11
码字总数 18440
作品 0
杭州
私信 提问
JMS配置说明-----activeMQ-5.6

1 简介 activeMQ是一个完全支持JMS1.1 和J2EE规范的JMS Provider实现; 尽管规范出台已经是很久的事情了,但JMS在当今的J2EE应用中仍然扮演着特殊的地位; 特性列表 多种语言和协议编写客户端...

次渠龙哥
2018/06/26
0
0
springmvc和activemq的整合使用

1、简介:ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今...

小不点丶
2017/05/24
0
0
深入浅出 消息队列 ActiveMQ

一、 概述与介绍 ActiveMQ 是Apache出品,最流行的、功能强大的即时通讯和集成模式的开源服务器。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。提供客户端支持跨语言和...

亮liang
2015/05/27
0
0
ActiveMQ 消息服务(一)

1、百度百科对ActiveMQ的解释: ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的...

Andy市民
2015/11/06
0
0
.Net平台下ActiveMQ入门实例

1.ActiveMQ简介 先分析这么一个场景:当我们在网站上购物时,必须经过,下订单、发票创建、付款处理、订单履行、航运等。但是,当用户下单后,立即跳转到“感谢那您的订单” 页面。不仅如此,...

postdep
2015/08/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

0.01-Win10安装linux子系统

一、安装Debian子系统 -1、控制面板设置: -1.1、打开“控制面板” —— “程序” —— “启用或关闭Windows功能” —— 勾选 “适用于Linux的Windows子系统” -2、设置: -2.1、打开“设置”...

静以修身2025
昨天
2
0
init 0-6 (启动级别:init 0,1,2,3,4,5,6)

启动级别: init 0,1,2,3,4,5,6 这是个很久的知识点了,只是自己一直都迷迷糊糊的,今天在翻出来好好理解下。。 0: 停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system...

圣洁之子
昨天
2
0
Android Camera HAL浅析

1、Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转...

天王盖地虎626
昨天
2
0
聊聊Elasticsearch的ProcessProbe

序 本文主要研究一下Elasticsearch的ProcessProbe ProcessProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/process/ProcessProbe.java public class ProcessProb......

go4it
昨天
3
0
mysql PL(procedure language)流程控制语句

在MySQL中,常见的过程式SQL语句可以用在存储体中。其中包括IF语句、CASE语句、LOOP语句、WHILE语句、ITERATE语句和LEAVE语句,它们可以进行流程控制。 IF语句相当于Java中的if()...else if(...

edison_kwok
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部