一、搭建环境

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. 在angularJs实现批量删除

    原理:在js中定义一个数组,然后给每个复选框一个点击事件,点击事件的方法参数有两个,一个是事件源$event,一个是id.点击复选框根据事件源判断是否被选中,然后进而是向这个数组增加或者删除id. $ ...

  2. Confluence wiki——CentOS6.8搭建详解

    参考资料:http://www.cnblogs.com/jackyyou/p/5534231.html http://www.ilanni.com/?p=11989 公司需要搭建WIKI方便员工将一些 ...

  3. springboot(五):springboot整合shiro-登录认证和权限管理

    http://z77z.oschina.io/ http://www.cnblogs.com/aqsunkai/category/982003.html https://www.cnblogs.com ...

  4. [整理]CSS3 滤镜

    1.灰度 兼容 http://www.526net.com/blog/qianduan/226.html http://james.padolsey.com/demos/grayscale/grays ...

  5. shell 流程结构

    if 判断语句 if [ $a == $b ] then echo "等于" else echo "不等于" fi case分支选择 case $xs in ) ...

  6. MySQL索引背后的数据结构及算法原理 (转)

    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...

  7. 第8月第21天 django lbforum项目记录

    1. django-admin.py startproject lbforum01 ls cd lbforum01/ ls python manage.py startapp forum sudo p ...

  8. 多源复制遇到CREATE USER FAILED错误

    MySQL Multi-Source Replication enables a replication slave to receive transactions from multiple sou ...

  9. Python 入门基础11 --函数基础4 迭代器、生成器、枚举类型

    今日目录: 1.迭代器 2.可迭代对象 3.迭代器对象 4.for循环迭代器 5.生成器 6.枚举对象 一.迭代器: 循环反馈的容器(集合类型) 每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的 ...

  10. nested exception is com.svorx.core.dao.PersistenceException

    在quartz定时执行任务的时候,hibernate报错,在只读事务中进行了update语句: [ERROR] 2018/08/03 10:35:00,827 org.quartz.core.JobR ...