一、搭建环境

Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装RabbitMQ之前要先安装Erlang。

erlang:http://www.erlang.org/download.html

rabbitmq:http://www.rabbitmq.com/download.html

我目前使用的:http://pan.baidu.com/s/1eS8Dhse

默认安装的Rabbit MQ 监听端口是:5672

二、配置

1. 安装完以后erlang需要手动设置ERLANG_HOME 的系统变量。

输入:set ERLANG_HOME=C:\Program Files\erl9.0

2,打开cmd定位到rabbitmq的安装路径:C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.10\sbin

上述命令回车后接着输入rabbitmqctl status,回车后出现下面一坨的即说明安装没有问题:

出现问题: Error:unable to connect to node rabbit@Hunter:nodedown
也不知道怎么回事,重新安装了下rabbitmq-server-3.6.10

3,rabbitmq-plugins enable rabbitmq_management(安装 RabbitMQWeb的管理插件。此时,已经可以通过 http://127.0.0.1:15672/ 地址来访问web管理界面了,默认的账户和密码均是 guest。但实际使用时可能需要重新一个新的管理账户)  

4,rabbitmqctl.bat add_user zhangdi 123456(创建管理用户,这一步还不能登录)

5,rabbitmqctl.bat set_user_tags zhangdi administrator(设置管理员,可以登录了)

6,rabbitmqctl.bat set_permissions -p /  zhangdi ".*" ".*" ".*"(授予管理员权限)

7,其他命令

  a. 查询用户: rabbitmqctl.bat list_users

  b. 查询vhosts: rabbitmqctl.bat list_vhosts

  c. 启动RabbitMQ服务: net stop RabbitMQ && net start RabbitMQ

8,centos配置

https://ken.io/note/centos7-rabbitmq-install-setup#H3-7

#添加用户
sudo rabbitmqctl add_user admin pwd #设置用户角色
sudo rabbitmqctl set_user_tags admin administrator #tag(administrator,monitoring,policymaker,management) #设置用户权限(接受来自所有Host的所有操作)
sudo rabbitmqctl set_permissions -p "/" admin '.*' '.*' '.*' #查看用户权限
sudo rabbitmqctl list_user_permissions admin

centos配置用户

新版配置:

下载地址:https://pan.baidu.com/s/18-rLh0e3mSY0xX4YfDqi3g

参考地址:https://blog.csdn.net/hzw19920329/article/details/53156015

1,下载安装erlang
①添加系统变量:ERLANG_HOME=C:\Program Files\erl9.3(安装路径)
②添加系统变量path:C:\Program Files\erl9.3\bin
③测试安装是否成功:打开cmd 输入erl,如果出现erlang的版本信息就表示erlang语言环境安装成功

2,下载安装RabbitMQ
注意:安装目录不能存在空格,最好安装到c盘(我安装rabbitmq到D盘出错)
①cmd进入C:\RabbitMQServer\rabbitmq_server-3.7.4\sbin目录 输入:rabbitmq-plugins enable rabbitmq_management安装管理界面

②安装完成进入http://localhost:15672,默认管理员和密码都是guest

三、C#使用RabbitMQ(使用EasyNetQ)

1,MQ.Common

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EasyNetQ; namespace MQ.Common
{
/// <summary>
/// 消息服务器连接器
/// </summary>
public class BusBuilder
{
public static IBus CreateMessageBus()
{
// 消息服务器连接字符串
// var connectionString = ConfigurationManager.ConnectionStrings["RabbitMQ"];
//string connString = "host=192.168.98.107:5672;virtualHost=OrderQueue;username=zhangdi;password=123456";
string connString = "host=127.0.0.1:5672;virtualHost=text;username=zhangdi;password=123456";
if(string.IsNullOrEmpty(connString))
throw new Exception("messageserver connection string is missing or empty");
return RabbitHutch.CreateBus(connString);
} }
}

BusBuilder

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace MQ.Common
{
public interface IProcessMessage
{
void ProcessMsg(Message msg);
}
}

IProcessMessage

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EasyNetQ; namespace MQ.Common
{
public class Message
{
public string MessageID { get; set; } public string MessageTitle { get; set; } public string MessageBody { get; set; } public string MessageRouter { get; set; }
}
}

Message

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EasyNetQ; namespace MQ.Common
{
public class MQHelper
{
/// <summary>
/// 发送消息
/// </summary>
/// <param name="msg"></param>
public static void Publish(Message msg)
{
// 创建消息bus
IBus bus = BusBuilder.CreateMessageBus();
try
{
bus.Publish(msg, x => x.WithTopic(msg.MessageRouter));
}
catch (EasyNetQException ex)
{
//处理连接消息服务器异常
}
bus.Dispose();//与数据库connection类似,使用后记得销毁bus对象
} public static void Subscibe(Message msg, IProcessMessage ipro)
{
// 创建消息bus
IBus bus = BusBuilder.CreateMessageBus();
try
{
bus.Subscribe<Message>(msg.MessageRouter, message => ipro.ProcessMsg(message),
x => x.WithTopic(msg.MessageRouter));
}
catch (EasyNetQException ex)
{
//处理连接消息服务器异常
}
}
}
}

MQHelper

2,MQ.Consumer

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MQ.Common; namespace MQ.Consumer
{
public class OrderProcessMessage : IProcessMessage
{
public void ProcessMsg(Message msg)
{
Console.WriteLine(msg.MessageBody);
}
}
}

OrderProcessMessage

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MQ.Common; namespace MQ.Consumer
{
class Program
{
static void Main(string[] args)
{
OrderProcessMessage order = new OrderProcessMessage();
Message msg = new Message();
msg.MessageID = "";
msg.MessageRouter = "pcm.notice.zhangsan";
MQHelper.Subscibe(msg, order); Console.ReadLine();
}
}
}

Program

3,MQ.Producer

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MQ.Common; namespace MQ.Producer
{
class Program
{
static void Main(string[] args)
{
Message msg = new Message();
msg.MessageID = "";
msg.MessageBody = DateTime.Now.ToString();
msg.MessageTitle = "";
msg.MessageRouter = "pcm.notice.zhangsan";
MQHelper.Publish(msg); Console.ReadLine();
}
}
}

Program

当启动Consumer(消费者)时,会自动在RabbitMQ服务器上创建相关的exchange和queue。
注意:这个程序应该先启动Consumer(消费者)

案例下载: http://pan.baidu.com/s/1c1LY9gc

参考文档:

http://blog.csdn.net/seven_coder/article/details/50946562

http://www.cnblogs.com/zhangweizhong/p/5687457.html

RabbitMQ for windows的更多相关文章

  1. 2.RABBITMQ 入门 - WINDOWS - 生产和消费消息 一个完整案例

    关于安装和配置,见上一篇 1.RABBITMQ 入门 - WINDOWS - 获取,安装,配置 公司有需求,要求使用winform开发这个东西(消息中间件),另外还要求开发一个日志中间件,但是也是要求 ...

  2. RabbitMQ,Windows环境下安装搭建

    切入正题:RabbitMQ的Windows环境下安装搭建 一.首先安装otp_win64_20.1.exe,,, 二.然后安装,rabbitmq-server-3.6.12.exe, 安装完成后,在服 ...

  3. 【RabbitMQ】RabbitMQ在Windows的安装和简单的使用

    版本说明 使用当前版本:3.5.4 安装与启动 在官网上下载其Server二进制安装包,在Windows上的安装时简单的,与一般软件没什么区别. 安装前会提示你,还需要安装Erlang,并打开下载页面 ...

  4. 1.RABBITMQ 入门 - WINDOWS - 获取,安装,配置

    一. 背景:     公司项目有所改动,要求微信(移动端调用的接口),日志接口换位log4net,全部改成以rabbitMQ作为服务支持, 二.本地环境:     windows 10 enterpr ...

  5. RabbitMQ在windows系统安装部署文档

    1.RabbitMQ简介 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它 ...

  6. RabbitMQ在Windows环境下的安装与使用

    Windows下安装RabbitMQ 环境配置 部署环境 部署环境:windows server 2008 r2 enterprise 官方安装部署文档:http://www.rabbitmq.com ...

  7. RabbitMQ在windows环境下的安装

    最近一直想入手一台电脑,作为linux服务器,由于经济状况也没有入手,现在就先介绍windows环境下安装rabbitMQ. RabbitMQ是什么 ? RabbitMQ是一个在AMQP基础上完整的, ...

  8. Python3.7.1学习(六)RabbitMQ在Windows环境下的安装

    Windows下安装RabbitMQ 环境配置 部署环境 部署环境:windows server 2008 r2 enterprise(本文安装环境Win7) 官方安装部署文档:http://www. ...

  9. RabbitMQ on windows开启远程访问

    我的RabbitMQ安装位置是:C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.5.6 为rabbitmq添加用户 C:\Progra ...

  10. rabbitMQ 在 windows 64位环境下无法启动(提示乱码)的解决方法

    执行start命令时,提示乱码 解决方法: Set the environment variable “RABBITMQ_BASE” to “c:\rabbitmq”, uninstall the s ...

随机推荐

  1. cookie的安全性问题

    HTTP协议: (1)请求组成部分: 请求行:(get或者post请求:请求路径(不包括主机) :http1.1) 请求头:请求头是浏览器交给服务器的一些信息(比较cookie啥的) 请求体:只有po ...

  2. (转)pythonC3线性算法

    本文转自:http://kaiyuan.me/2016/04/27/C3_linearization/ 作者:Kaiyuan 注意:本文仅仅作为个人mark,所以排版并不如原文,另本文在原文基础上做了 ...

  3. Kubernetes HPA

    简介 通过手工执行 kubectl scale 命令或者通过修改deployment的replicas数量,可以实现 Pod 扩容或缩容.但如果仅止于此,显然不符合 Google 对 Kubernet ...

  4. Lua程序设计(四)面向对象类继承

    1.类继承 ①代码 Sharp = { _val = } --① 父类 function Sharp:new() local new_sharp = { } self.__index = self - ...

  5. [iOS]图片高清度太高, 导致内存过大Crash

    先说一下状况, 后台提供的图片太高清了, 每个图片都在2-4MB, iOS上每个页面需要同时下载并展示10-15张. 这个时候, 如果我多滑动collectionView几次, 直接App就崩溃了(r ...

  6. BZOJ4103 异或运算

    4103: [Thu Summer Camp 2015]异或运算 Time Limit: 20 Sec  Memory Limit: 512 MB Description 给定长度为n的数列X={x1 ...

  7. mysql.user细节三问

    一.如何拒绝用户从某个精确ip访问数据库假如在mysql.user表中存在用户'mydba'@'192.168.85.%',现在想拒绝此用户从某个精确ip访问数据库 # 创建精确ip用户,分配不同的密 ...

  8. android 通用 Intent

    通用 Intent 本文内容显示详细信息 闹钟 日历 相机 联系人/人员应用 电子邮件 文件存储 本地操作 地图 音乐或视频 新笔记 电话 搜索 设置 发送短信 网络浏览器 使用 Android 调试 ...

  9. SUSE Enterprise Server 12 SP3 64 设置防火墙开放8080端口

    SUSE Enterprise Server 12 SP3 64 设置防火墙开放8080端口 第一种方式: 1.sudo chmod a+w /etc/sysconfig/SuSEfirewall2  ...

  10. darknet

    darknet第二作者:https://github.com//AlexeyAB/darknet#how-to-train-to-detect-your-custom-objects yolov3实现 ...