RabbitMQ消息队列安装和配置以及推送消息

好久没有写了,最近项目用到RabbitMQ,找了一些资料试验,最后终于成功了,把安装配置的步骤分享给大家。

一、Erlang
安装具体过程:

1.双击otp_win32_R16801.exe(不同版本可能命名字不一样),选择next

2.默认安装在C盘,建议程序安装在非系统盘比如D盘(如果安装在C盘可能会出现一些权限问题),修改好安装路径后,选next:

3.进入安装程序,选择install,即可完成安装。

配置环境变量:在系统变量下添加 变量名:ERLANG_HOME,变量值:C:\Program Files (x86)\erl6.1

二、安装rabbitMQ
rabbitmq-server-3.3.5.exe
安装完成增加环境变量,双击path,在其后面增加:;C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.3.5\sbin

启动start


cmd进到sbin目录,输入rabbitmq-service启动

或是直接找到rabbitMQ安装目录下C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.3.5\sbin

打开浏览器登录http://localhost:15672进入监视页面说明配置成功,用户名和密码:guest

配置成功以后就是发送消息,采用Exchange。

Rabbit的核心组件包含Queue(消息队列)和Exchanges两部分,Exchange的主要部分就是对信息进行路由,通过将消息队列绑定到Exchange上,则可以实现订阅形式的消息发布及Publish/Subscribe在这种模式下消息发布者只需要将信息发布到相应的Exchange中,而Exchange则自动将信息分发到不同的Queue当中。

在.Net环境下有基于RabbitMQ有很多有API的选择,最后选择了比较简单的EasyNetQ(http://easynetq.com/)

    /// <summary>
    /// 消息服务器连接器
    /// </summary>
    public class BusBuilder
    {
        public static IBus CreateMessageBus()
        {
            //消息服务器连接字符串

            string connString = "host=172.17.186.50:5672;virtualHost=rb;username=admin;password=123";
            return RabbitHutch.CreateBus(connString);
           // return RabbitHutch.CreateBus(connectionString.ConnectionString);
        }
    }
 /// <summary>
        /// 发送消息
        /// </summary>
        public static void Publish(Message msg)
        {
            //// 创建消息bus
            IBus bus = BusBuilder.CreateMessageBus();

            try
            {
                using (var publishChannel = bus.OpenPublishChannel())   //创建消息管道
                {
                    publishChannel.Publish(msg, x => x.WithTopic(msg.MessageRouter));  //通过管道发送消息
                }
            }
            catch (EasyNetQException ex)
            {
                //处理连接消息服务器异常
                // MessageHelper.WriteFuntionExceptionLog("Publish", ex.Message + " | " + ex.StackTrace);

            }

            bus.Dispose();//与数据库connection类似,使用后记得销毁bus对象
        }
    /// <summary>
        /// 接收消息
        /// </summary>
        /// <param name="msg"></param>
        public static void Subscribe(Message msg, IProcessMessage ipro)
        {
            //// 创建消息bus
            IBus bus = BusBuilder.CreateMessageBus();

            try
            {
                bus.Subscribe<Message>(msg.MessageID, message => ipro.ProcessMsg(message), x => x.WithTopic(msg.MessageRouter).WithArgument("x-ha-policy", "all"));

            }
            catch (EasyNetQException ex)
            {
                //处理连接消息服务器异常
              //  MessageHelper.WriteFuntionExceptionLog("Subscribe", ex.Message + " | " + ex.StackTrace);
            }
        }

添加虚拟主机

添加用户

执行代码就会自动建立Exchanges,名字是根据项目名来的

点击新建的Exchanges进入新建queue

最后调用接口测试发送,代码如下:

  protected void Button1_Click(object sender, EventArgs e)
        {
            MQ.Message msg = new MQ.Message();
            msg.MessageID = "testkey";
            msg.MessageBody = "发送测试";
            msg.MessageTitle = "hello world";
            msg.MessageRouter = "testKey";
            MQ.MQHelper.Publish(msg);

        }
msg.MessageRouter = "testKey"——这句配置很重要,取决于上一步的Routing Key.

推送消息成功!

源码下载:http://pan.baidu.com/s/1sjExnWh

时间: 2024-08-11 05:43:02

RabbitMQ消息队列安装和配置以及推送消息的相关文章

【转】MSMQ消息队列安装

一.Windows 7安装.管理消息队列1.安装消息队列   执行用户必须要有本地 Administrators 组中的成员身份,或等效身份.   具体步骤:    开始—>控制面板—>程序—>程序和功能—>打开或关闭Windows功能—>依次展开Microsoft Message Queue (MSMQ) 服务器.Microsoft Message Queue (MSMQ) 服务器核心—>确定   如果系统提示您重新启动计算机,请单击“确定”以完成安装.2.管理消息队

用JPUSH极光推送实现服务端向安装了APP应用的手机推送消息(C#服务端接口)

这次公司要我们做一个功能,就是当用户成功注册以后,他登录以后要收到消息,当然这个消息是安装了我们的手机APP应用的手机咯. 极光推送的网站的网址是:https://www.jpush.cn/ 极光推送的官方API以及帮助文档都在这里:http://docs.jpush.cn/display/dev/Index 其中服务端的接口以及示例代码都在这里:http://docs.jpush.cn/display/dev/Server-SDKs 大家有兴趣的可以看看,因为这次我做的不是客户端APP,所以一

signalr推送消息

参考:Tutorial: Getting Started with SignalR 2 and MVC 5 环境:vs2013,webapi2,entity framework6.0 实现效果:当用户上传一个文件时候,推送消息给关注此用户的其他用户,告知此用户上传了一个新的文件. 推送原理:当前端用户打开网页时候,SignalR 服务端会自动生成一个guid类型的ConnectionId.此ConnectionId用来连接确定用户端,用来确定发送给哪个当前在线用户.当要推送消息时候,后端方法会根

百度云推送消息到达率低问题定位分析

去年做我们这个产品的时候,SE在客户端设计了一个推送功能,SE经过调研决定在Android和IOS端都集成百度的云推送SDK来支持这个推送功能.最近领导在做运营分析的时候,发现云推送的报表显示,在Android端消息的达到率非常低,设备的在线率波动比较大,有时高有时非常低. 我们的这个产品经过将近两年的折腾进步是有目共睹的,在今年的巴塞罗那GSMA世界移动通信大会上荣获"Best Mobile Music App"大奖,让我们这帮苦逼了将近两年的屌丝士气大振,领导也欣喜不已并且决定将精

关于Android端配置极光推送

因为业务需要,android客户端需要加推送,原来采用的百度推送,但是小米手机有时候收不到,后来换成了极光推送,极光的话所有设备都能收到推送,但是在高峰的时候会推迟,博主说的免费版的,收费的没用过,也不错评论 博主用的android studio开发的,.so文件放置的位置啥的可能和eclipse有点不同,感觉用android studio开发jni一类的真的好费劲,博主现在老腻歪了,唉,废话不多说,进入正题: 首先,去极光推送官网注册一系列流程,不过貌似不用认证,老长时间注册的了,忘得差不多了

DWR实现服务器向客户端推送消息

原文链接 http://www.blogjava.net/stevenjohn/archive/2012/07/07/382447.html这片文章还是给了我很大帮助,再次表示感谢,下面我将这两天的研究详细记录下来备忘,也希望能帮助到像我一样的人.只写过程,不写原理(不是不写,而是有些地方我也不太懂),下面开始: 第一.在项目中引入dwr.jar,然后在web.xml中进行配置,配置如下: <servlet> <servlet-name>dwr-invoker</servle

推送消息

APNS(Apple Push Notification Services)苹果专门的推送服务器 接收我们自己应用服务器需要被推送的消息 然后推送到我们的手机 手机通知我们的应用程序 注册的大概流程: 1 设备需要向APNS服务器注册 2 注册成功后返回device_token值 3 将这个token值发送给我们自己的服务器 4 有需要推送的消息时  自己的服务器将消息按一定的格式打包 结合token值发送给APNS服务器 5 由于App与APNS维持一个基于TCP的长连接 APNS将消息推送到

ios如何实现远程推送消息

远程推送可以解决 当用户关闭程序的时候 不能收到推送消息.当客户端使用了远程推送的功能,不管用户有没有关闭程序,都能收到 服务器推送的消息. 苹果实现远程推送 是基于长连接的, 默认情况下 苹果的所有设备都是和 苹果的apns服务器建立长连接的, 只要设备已经联网. 长连接的好处: 苹果服务器可以主动向 客户端发送消息, 也可以找回我的设备(当设备丢失时). 远程推送的步骤: 客户端向苹果服务器获取deviceToken步骤:客户端将 BundleId 和 设备UDID 发送给苹果Apns服务器

Qt通过极光推送向app推送消息

简介 最近在做个项目,当客服端收到防盗的消息通知时向手机app推送一个消息,告知有防盗报警.这么小的功能没必要自己写个推送端,极光推送免费而且推送的成功率高,已经能满足我们的需求了. 极光推送的文档大家可以到极光推送的官网查看(http://docs.jiguang.cn/),由于我们这是是使用Qt C++开发的极光推送并没有提供c++的封装,这里我们选择rest API的方式推送,rest API的推送方式的demo以及json格式在http://docs.jiguang.cn/server/