1.下载ActiveMQ
官方网站下载地址:http://activemq.apache.org/
2.运行ActiveMQ
解压缩apache-activemq-5.10.0-bin.zip,然后双击apache-activemq-5.10.0\bin\win32\activemq.bat运行ActiveMQ程序。
启动ActiveMQ以后,可以使用浏览器登陆:http://localhost:8161/admin/验证, 默认用户名是:admin 密码是:admin
(前提是配置好好JDK环境,能打开console代表MQ运行成功)
6.创建mq生产者工程,并nuget安装Apache.NMS.dll以及Apache.NMS.ActiveMQ.dll两个类库。
生产者代码如下:
//消息体实体类
public class GPSData
{
/// <summary>
/// E东经,W西经
/// </summary>
public string LONG_WE { get; set; }
/// <summary>
/// S南纬,N北纬
/// </summary>
public string LAT_NS { get; set; }
/// <summary>
/// 经度
/// </summary>
public decimal LONGITUDE { get; set; }
/// <summary>
/// 纬度
/// </summary>
public decimal LATITUDE { get; set; }
}
//建立MQ连接以及发送MQ消息
private void SendMq()
{
try
{
//Create the Connection Factory
IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616/");
using (IConnection connection = factory.CreateConnection())
{
//定义要发送的类
GPSData message = new GPSData();
message .LATITUDE =47.888;
message .LONGITUDE = 122.689;
message .LONG_WE = "E";
message .LAT_NS = "N";
//创建 Session
using (ISession session = connection.CreateSession())
{
//定义topic名
IMessageProducer prod = session.CreateProducer(
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("test"));
//对发送的类进行处理,
var str = JsonConvert.SerializeObject(message);
var bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message));
//将转化好的消息赋值给msg
IMessage msg = prod.CreateBytesMessage(bytes);
//发送消息
prod.Send(msg, Apache.NMS.MsgDeliveryMode.NonPersistent, Apache.NMS.MsgPriority.Normal, TimeSpan.MinValue);
System.Threading.Thread.Sleep(5000);
}
}
Console.ReadLine();
}
catch (System.Exception e)
{
Console.WriteLine("{0}", e.Message);
Console.ReadLine();
}
}
以上,就可以将GpsData类型的消息发送到MQ上,供消费者消费。