参考:https://my.oschina.net/loveorange/blog/3026473

安装参考链接:

1. 下载自己需要的rabbitmq_server(http://www.rabbitmq.com/download.html)版本和erlang环境(http://www.erlang.org/downloads)。

2. 先安装erlang环境,并添加环境变量。

control panel --> (Viewed By Category)选择System and Security -->选择System

环境变量添加可参考https://my.oschina.net/loveorange/blog/3026473

3. 验证erl是否安装成功

以管理员身份输入cmd打开控制面板,输入erl验证是否安装成功

4. 安装rabbitmq

安装完成后 cmd 命令到安装目录下的sbin 目录 键入命令: rabbitmq-plugins.bat enable rabbitmq_management  开启插件

键入: rabbitmq-server  启动MQ

浏览器http://localhost:15672/ 访问MQ的主页 初始化密码和用户名都是: guest

5. rabbitmq在.NET中的简单应用

一、 程序准备

(1)浏览器中打开QM主页后,添加用户。(如果没有添加有权限的用户,则无法在程序中创建连接

(2)初始添加用户后,用户没有权限,显示如下:

此时, 鼠标点击用户名test,点击set permission 为该用户设置权限

 二、 程序实现

生产者:

namespace Send
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Start!");
IConnectionFactory conFactory = new ConnectionFactory//创建连接工厂对象
{
HostName = "10.64.228.211",
Port = ,
UserName = "wl",
Password = ""
};
using (IConnection con = conFactory.CreateConnection())//创建连接
{
using (IModel channel = con.CreateModel())//创建通道
{
// 创建交换机
string queueName = "testQueue1";
string exchangeName = "exchangeTest1";
string routingKey = "routingKeyTest1";
channel.ExchangeDeclare(exchangeName, ExchangeType.Direct); //创建一个消息队列并绑定到交换机上
channel.QueueDeclare(queueName, true, false, false, null);
channel.QueueBind(queueName, exchangeName,routingKey,null); //Console.WriteLine("消息内容:");
string message = string.Empty;
for (int i= ; i< ; i++)
{
message = Thread.CurrentThread.ManagedThreadId + i.ToString();
byte[] body = Encoding.UTF8.GetBytes(message);//消息内容
//发送消息到消息队列
channel.BasicPublish(exchangeName, routingKey, null, body);
} // Console.Write("成功发送消息:" + message);
}
} }
}
}

启动该服务,可以在rabbitmq的主页中看到接收的消息。

消费者

namespace Receive
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
IConnectionFactory conFactory = new ConnectionFactory//创建连接工厂对象
{
HostName = "10.64.228.211",
Port = ,
UserName = "wl",
Password = ""
};
using (IConnection conn = conFactory.CreateConnection())//创建连接
{
using (IModel channel = conn.CreateModel())//创建通道
{
// 取出消息
string queueName = "testQueue1"; //创建消费者对象
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
byte[] message = ea.Body;//接收到的消息
Encoding.UTF8.GetString(message);
}; //消费者开启监听
var consumeResult = channel.BasicConsume(queueName, true,consumer);
Console.ReadKey();
}
} }
}
}

启动消费服务,mq会消费队列中消息。

显示消息已经被消费。

最新文章

  1. dialog 模块化窗口
  2. Google分布式构建软件之一:获取源代码
  3. POJ 1917
  4. ExtendHelper
  5. checking在浏览器为应用缓存查找更新时触发
  6. HTML的超链接
  7. call, apply, bind作用
  8. Android Call requires API level 11 (current min is 8)的解决方案
  9. Java方法区和运行时常量池溢出问题分析(转)
  10. 分布式版本控制系统Git-----9.Git 使用的小技巧
  11. U3D 控件
  12. 201521123105 《Java程序设计》第1周学习总结
  13. DRF认证组件流程分析
  14. loading加载动画效果js实现
  15. 《HTTP 权威指南》笔记:第十六章&amp;第十七章 国际化、内容协商与转码
  16. bootstrap modal 移除数据
  17. bzoj4709: [Jsoi2011]柠檬 斜率优化
  18. kali linux wmtools安装
  19. JS获取当前日期方法
  20. 雷林鹏分享:jQuery EasyUI 插件

热门文章

  1. 富文本API
  2. Git删除无效远程分支
  3. Netty的出现
  4. ubuntu---NVIDIA驱动 + CUDA 安装完可能会遇见的问题
  5. Vue+Axios+Nigix+SpringCloud前端和后端搭建及其碰到的问题
  6. python用于web题里写解密脚本
  7. spring boot引入外部jar包
  8. centos yum安装redis,nginx
  9. 云时代架构阅读笔记九——web应用存在的问题及解决办法
  10. TensorFlow2 Part3:动态模型建立与训练