1.4运行ActiveMQ第一个例子
前面部分已经教你启动ActiveMQ。作为确认,你应该打开一些终端来运行ActiveMQ示例。在第二个终端中,移动到example文件夹并查看它的内容。如清单1.4所示。
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----使用Java例子的配置文件。
- perfharness----包含一个可以运行IBM JMS性能监控工具的脚本。
- ruby----包含一些使用Ruby和STOMP连接ActiveMQ的例子。
- src----Java例子就在这里。这个文件夹被build.xml使用。
- tansactions----一个带事务的ActiveMQ实现例子,这个例子是从Sun JMS教程弄过来的。
如列表1.5所示,用第二个终端启动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的队列
- 使用非持久订阅(nondurable subscription)
- 接收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 ...'
由于阅读方便,上面的输出省略了一些。但从上面你也可以了解到
- 它使用tcp协议连接代理器(tcp://localhost:61616)
- 向队列TEST.FOO发送消息
- 使用非持久性消息
- 在发送消息的间隙不休眠。
一旦JMS生产者连接上ActiveMQ,它将发送2000条消息后结束。这刚好是消费者关闭前所要消耗的消息数。当生产者在生产消息时,切换到终端2查看消费者怎么消耗这些信息。下面是终端2输出到消息
[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是正常运行的。我们再看回终端2,好像ActiveMQ什么都没做。这是因为默认的日志配置并不输出一些不必要的东西。如果你想让ActiveMQ输出接收和发送消息的日志,你可以修改日志配置。具体内容将在14章介绍。
这一节你学到了什么呢?通过使用ActiveMQ自带的例子,可以证明代理器已经启动,并且可以处理消息。这看起来没什么,但却是重要的第一步。如果你能成功运行这个例子,就说明你的网络连接没有问题,也说明ActiveMQ是正常的。如果你不能成功运行这个例子,你必须先找出错误。如果你需要帮助,通过ActiveMQ的邮件列表寻求帮助是最好的一种方法。这些例子只是让你开始使用ActiveMQ,但它们也能用来测试很多场景。这本书剩下的内容,有一些其它常用场景的例子,将用来演示ActiveMQ和它的特性。这些例子将在第3章详细解释。
本章总结
ActiveMQ是多功能的,易于使用的消息中间件。你了解了ActiveMQ的特性,这些特性将在这本书中详细讲述。你也了解了ActiveMQ使用场景。本章介绍的场景都是真实世界的例子,并且已经在商业上使用的。JMS规范就是设计在这些场景中使用的。对于那些不熟悉或者根本不懂JMS的人,下一章将向你介绍企业消息服务,并提供一个JMS总览。如果你多这两个内容很熟悉,你可以跳过第三章。
分享到:
相关推荐
activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子activeMq的一个小例子...
activemq基于web的例子
1. **消息生产者**:生产者创建一个连接到ActiveMQ服务器的ConnectionFactory,然后创建一个Session,用于发送消息。Session可以创建一个Destination(可能是Queue或Topic),接着创建一个Producer,并通过Producer...
6. **创建消息**: 在这个例子中,我们发送的是文件内容,所以消息可能是包含文件二进制数据的BytesMessage。 ```csharp var message = session.CreateBytesMessage(fileBytes); ``` 文件内容需要先读取到字节...
在"JMSActiveMQ"这个例子中,可能包含以下几个步骤: 1. **导入依赖**:项目中需要引入ActiveMQ的JMS客户端库,通常通过Maven或Gradle添加依赖。 2. **配置连接工厂**:创建一个`ActiveMQConnectionFactory`实例,...
从提供的"ActiveMQWeb"这个文件名来看,这可能是一个关于如何通过Web接口与ActiveMQ交互的例子。这可能包括使用ActiveMQ的内置Jetty服务器来运行Web控制台,或者展示如何通过HTTP/HTTPS接口进行管理操作,如发送消息...
在IT行业中,Spring MVC和ActiveMQ是两个非常重要的技术组件。Spring MVC是Spring框架的一部分,主要用于构建基于...这个例子展示了如何在一个Web应用中有效地利用消息队列来处理异步任务,提升系统的性能和稳定性。
- **消息中间件**:ActiveMQ作为一个消息中间件,负责在分布式系统中传递消息,解耦生产者和消费者。 - **JMS(Java Message Service)**:JMS是Java平台上的标准,定义了消息生产和消费的接口,ActiveMQ是实现JMS...
本教程将通过一个简单的例子介绍ActiveMQ的两个核心模式:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。我们将使用IntelliJ IDEA作为集成开发环境来实现这些示例。 首先,我们需要...
通过这个例子,开发者可以了解到如何在Web应用程序中使用ActiveMQ JMS进行消息通信,包括创建连接工厂、建立连接、创建会话、定义目的地、发送和接收消息等核心操作。这个例子对理解和实践ActiveMQ在Web环境中的应用...
标题中的"activemq-transport-xstream-1.4.jar.zip"是一个压缩文件,其中包含的是ActiveMQ的一个组件——ActiveMQ Transport XStream的1.4版本。ActiveMQ是Apache软件基金会开发的一款开源的消息代理和队列服务器,...
ActiveMQ 5 的版本是不能在低于JDK1.5的环境下运行的,而实际开发过程中,大多数企业应用环境还是1.4的,故用字节码转换工具转了一份出来,专门提供给JDK1.4的用户使用,在此分享给大家。
标题中的“ActiveMQ RCP测试例子 不包含依赖库”指的是一个使用ActiveMQ远程过程调用(RPC)功能的示例项目,但这个压缩包里并未包含必要的依赖库。ActiveMQ是Apache软件基金会的一个开源项目,它是一个强大的消息...
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息...ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
总结一下,ActiveMQ 5.10是一个强大的消息中间件,通过`Publisher.java`和`Customer.java`的实例,我们可以了解如何使用JMS API进行消息的发送和接收。在实际开发中,ActiveMQ可以帮助我们构建健壮、可靠的分布式...
ActiveMQ 是一个开源的消息中间件,它是 Java Message Service(JMS)规范的一个实现,用于在分布式系统中传输消息。ActiveMQ 支持多种协议,如 OpenWire、STOMP、AMQP 和 MQTT,允许不同平台的应用程序进行通信。它...
启动后,ActiveMQ会提供一个管理界面,可以通过Web浏览器访问,以监控和管理消息队列。 在Java项目中集成ActiveMQ,你需要添加Apache ActiveMQ的JAR依赖。如果你使用的是Maven,可以在pom.xml文件中添加对应的依赖...
在这个例子中,我们有`apache-activemq-5.9.0`的压缩包,这包含了ActiveMQ的一个早期版本。这个包通常会包含服务器的可执行文件、配置文件、示例代码以及相关的文档,非常适合初学者来学习和理解ActiveMQ的工作原理...
作为Java应用程序,ActiveMQ Tools 1.4.jar 依赖于Java运行环境(JRE)以及可能的一些其他第三方库。在实际部署时,需要确保这些依赖项已正确配置,以避免运行时错误。 3. **文件组成**: - **activemq-tools-1.4...