下载 安装 启动 我就不说了 大家自行百度解决
官方网站下载地址:http://activemq.apache.org/
消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。主要用作不同进程、应用间的通信方式
直接上教程
首先我们创建一个.net core控制台程序 方便测试 我当前用的core版本是2.2
(ASP.net core使用同理)
然后安装下这个库
![](https://img.haomeiwen.com/i11434853/0a656494daf23533.png)
接着我们写简单示例
static void Main(string[] args)
{
//消费者
Task.Run(() =>
{
string queuesName = "myQueue";
Uri _uri = new Uri(String.Concat("activemq:failover:(tcp://localhost:61616)"));
IConnectionFactory factory = new ConnectionFactory(_uri);
using (IConnection conn = factory.CreateConnection())
{
using (ISession session = conn.CreateSession())
{
conn.Start();
IDestination destination = SessionUtil.GetDestination(session, queuesName);
using (IMessageConsumer consumer = session.CreateConsumer(destination))
{
consumer.Listener += (IMessage message) =>
{
ITextMessage msg = (ITextMessage)message;
Console.WriteLine("接收消息:" + msg.Text);
};
Console.ReadLine();
}
}
}
});
//生产者
Task.Run(() =>
{
string _queuesName = "myQueue";
var __uri = new Uri(string.Concat("activemq:failover:(tcp://localhost:61616)"));
IConnectionFactory _factory = new ConnectionFactory(__uri);
using (IConnection _conn = _factory.CreateConnection())
{
using (ISession _session = _conn.CreateSession())
{
IDestination _destination = SessionUtil.GetDestination(_session, _queuesName);
using (IMessageProducer producer = _session.CreateProducer(_destination))
{
//可以写入字符串,也可以是一个xml字符串等
for (int i = 0; i < 10; i++)
{
ITextMessage request = _session.CreateTextMessage("新新messsage" + i);
producer.Send(request);
Console.WriteLine("发送新新消息:" + i);
Thread.Sleep(200);
}
}
}
}
});
Console.ReadLine();
}
效果:
![](https://img.haomeiwen.com/i11434853/ddc8fe6704f517c3.png)
网友评论