您的位置:首页 > 其它

ActiveMQ In Action 第一章 消息传递和ActiveMQ简介 1.4 运行你的第一个ActiveMQ例子

2014-08-31 10:31 381 查看
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章继续探索这本书的例子。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: