RabbitMQ for windows
一、搭建环境
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的更多相关文章
- 2.RABBITMQ 入门 - WINDOWS - 生产和消费消息 一个完整案例
		
关于安装和配置,见上一篇 1.RABBITMQ 入门 - WINDOWS - 获取,安装,配置 公司有需求,要求使用winform开发这个东西(消息中间件),另外还要求开发一个日志中间件,但是也是要求 ...
 - RabbitMQ,Windows环境下安装搭建
		
切入正题:RabbitMQ的Windows环境下安装搭建 一.首先安装otp_win64_20.1.exe,,, 二.然后安装,rabbitmq-server-3.6.12.exe, 安装完成后,在服 ...
 - 【RabbitMQ】RabbitMQ在Windows的安装和简单的使用
		
版本说明 使用当前版本:3.5.4 安装与启动 在官网上下载其Server二进制安装包,在Windows上的安装时简单的,与一般软件没什么区别. 安装前会提示你,还需要安装Erlang,并打开下载页面 ...
 - 1.RABBITMQ 入门 - WINDOWS - 获取,安装,配置
		
一. 背景: 公司项目有所改动,要求微信(移动端调用的接口),日志接口换位log4net,全部改成以rabbitMQ作为服务支持, 二.本地环境: windows 10 enterpr ...
 - RabbitMQ在windows系统安装部署文档
		
1.RabbitMQ简介 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它 ...
 - RabbitMQ在Windows环境下的安装与使用
		
Windows下安装RabbitMQ 环境配置 部署环境 部署环境:windows server 2008 r2 enterprise 官方安装部署文档:http://www.rabbitmq.com ...
 - RabbitMQ在windows环境下的安装
		
最近一直想入手一台电脑,作为linux服务器,由于经济状况也没有入手,现在就先介绍windows环境下安装rabbitMQ. RabbitMQ是什么 ? RabbitMQ是一个在AMQP基础上完整的, ...
 - Python3.7.1学习(六)RabbitMQ在Windows环境下的安装
		
Windows下安装RabbitMQ 环境配置 部署环境 部署环境:windows server 2008 r2 enterprise(本文安装环境Win7) 官方安装部署文档:http://www. ...
 - RabbitMQ on windows开启远程访问
		
我的RabbitMQ安装位置是:C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.5.6 为rabbitmq添加用户 C:\Progra ...
 - rabbitMQ 在 windows 64位环境下无法启动(提示乱码)的解决方法
		
执行start命令时,提示乱码 解决方法: Set the environment variable “RABBITMQ_BASE” to “c:\rabbitmq”, uninstall the s ...
 
随机推荐
- 基于CMS的组件复用实践
			
目前前端项目大多基于Vue.React.Angular等框架来实现,这一类框架都有一个明显的特点:基于模块化以及组件化思维.所以,开发者在使用上述框架时,实际上是在写一个一个的组件,并且组件与组件之间 ...
 - Kubernetes Service
			
目录 基本概念 服务发现与负载均衡 配置Service 创建一个ClusterIP类型的Service 创建一个指定ClusterIP的Service 创建一个headless service 创建一 ...
 - SQL记录-PLSQL集合
			
PL/SQL集合 集合是一个有序组具有相同的数据类型的元素.每个元素进行标识的唯一标表示其在集合中的位置. PL/SQL提供了三种集合类型: 索引表或关联数组 嵌套表 可变大小的数组或变长数组 Ora ...
 - bzoj千题计划267:bzoj3129: [Sdoi2013]方程
			
http://www.lydsy.com/JudgeOnline/problem.php?id=3129 如果没有Ai的限制,就是隔板法,C(m-1,n-1) >=Ai 的限制:m减去Ai &l ...
 - html5 canvas 对角线渐变
			
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
 - html5 canvas 奇怪的形状垂直渐变
			
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
 - 关于System.getProperty("java.io.tmpdir");的输出,及System.getProperty();参数
			
1,首先来介绍下System.getProperty("java.io.tmpdir")输出因为这个输出有点特殊. 理论介绍:他是获取系统临时目录.可以是window的temp,l ...
 - Linux - awk 文本处理工具四
			
awk 常用示例 获取本机 IP 方式 /sbin/ifconfig |awk -v RS="Bcast:" '{print $NF}'|awk -F: '/addr/{print ...
 - How to become a successful bug bounty hunter
			
出处:https://www.hackerone.com/blog/become-a-successful-bug-bounty-hunter 如果你梦想成为赏金猎人,你的梦想就会成真 - 不要把你的 ...
 - Windows入侵问题排查
			
1.深入分析,查找入侵原因 1.1 检查帐户和弱口令 1.查看服务器已有系统或应用帐户是否存在弱口令 检查说明:主要检查系统管理员帐户.网站后台帐户.数据库帐户以及其他应用程序(FTP.Tomcao. ...