使用ActiveMQ发送和接受消息(1)

本文档详细介绍了如何搭建ActiveMQ环境,包括安装JDK、Tomcat,配置环境变量,以及修改activemq.xml配置文件。在完成环境配置后,通过启动服务并访问指定URL验证成功。接下来,文章演示了在C#中使用Apache.NMS.ActiveMQ和Apache.NMS库创建项目,添加引用,并编写发送和接收消息的代码,提供了C#客户端操作ActiveMQ的参考。
摘要由CSDN通过智能技术生成

第一步:搭建ActiveMQ环境

a.安装jdk与tomcat,设置环境变量%JAVVA_HOME% = C:\Program Files\Java\jdk1.7.0_11

b.解压下载得到的apache-activemq-5.7.0-bin.zip,输出路径:E:\ActiveMQ\apache-activemq-5.7.0

    下载地址:http://activemq.apache.org/download-archives.html

c.修改E:\ActiveMQ\apache-activemq-5.7.0\conf\activemq.xml

    Line129: <storeUsage limit="10 gb"/>
    Line132: <tempUsage limit="1 gb"/>

    若磁盘空间不够,在安装过程中会得到WARN信息。

d.双击运行apache-activemq-5.7.0\bin\activemq.bat,一切顺利得信息“INFO | Started SelectChannelConnector@0.0.0.0:8161”

    打开http://localhost:8161/,效果如下:


第二步:使用C#实现本地和ActiveMQ之间发送/接受消息

a.下载Apache.NMS.ActiveMQ.dll和Apache.NMS.dll

    下载地址:http://activemq.apache.org/nms/download.html

    Apache.NMS.ActiveMQ-1.5.6-bin\build\net-2.0\release\Apache.NMS.ActiveMQ.dll
    Apache.NMS-1.5.1-bin\net-2.0\release\Apache.NMS.dll

b.新建C#项目,添加引用Apache.NMS.ActiveMQ.dll和Apache.NMS.dll

c.编写生产者类,实现向服务器发送消息

//#define TOPIC //使用topic模式
#define QUEUE  // 使用queue模式

using System;
using System.Threading;
using Apache.NMS;
using Apache.NMS.ActiveMQ;
using Apache.NMS.ActiveMQ.Commands;

//
Apache ActiveMQ是一个开源的消息中间件,它允许在分布式系统中异步地发送和接收消息。在ActiveMQ中,消息发送通常涉及到以下几个步骤: 1. **创建连接**: 首先,你需要通过`ConnectionFactory`创建一个到消息代理服务器的连接。 ```java ActiveMQConnection connection = (ActiveMQConnection) factory.createConnection(); ``` 2. **创建会话**: 连接建立后,创建一个`Session`用于管理发送和接收消息。 ```java ActiveMQSession session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ``` 这里的`false`表示非持久化消息,`AUTO_ACKNOWLEDGE`意味着消息会在消费者消费完毕后自动确认。 3. **创建队列或主题**: 创建一个`Queue`或`Topic`来指定消息的目的地。队列是一对一的通信,而主题则可以广播给所有订阅者。 ```java Destination destination = session.createQueue("queueName"); // 或者 session.createTopic("topicName"); ``` 4. **生产消息**: 使用`Producer`向队列或主题发送消息。 ```java MessageProducer producer = session.createProducer(destination); TextMessage message = session.createTextMessage("Hello, World!"); producer.send(message); ``` 5. **消费消息**: 创建一个`Consumer`并绑定到目的地,然后从`Session`中获取消息。 ```java MessageConsumer consumer = session.createConsumer(destination); consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { TextMessage txtMsg = (TextMessage) message; String text = txtMsg.getText(); // 获取接收到的消息内容 System.out.println(text); } }); ``` 6. **关闭资源**: 消费完成后,记得关闭`Connection`, `Session`, 和`Producer`等资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值