RabbitMQ 快速入门

RabbitMQ 使用入门

项目需要接触了几天 RabbitMQ ,在此把自己学习的东西记录下来和大家交流,望大家指教。

什么是 RabbitMQ

RabbitMQ主要是在AMQP协议标准基础上完成的,主要是用于大型应用程序,作为不同应用程序之间传递消息的组件,RabbitMQ包括Server和Client,一个server可以拥有多个Client。RabbitMQ也将Server称为broker,意为消息中间人。

RabbitMQ 安装

因为我是在64位win8.1环境使用MQ,并且是用于unity的,所以这里只介绍win8.1和unity的情况。安装过程基本参考官网教程

  1. Erlang 环境安装
    RabbitMQ是建立在Erlang OTP平台上的,所以要先安装Erlang环境,文件较大,Erlang下载,下载完直接按默认路径安装。

  2. RabbitMQ Server 安装
    直接下载后按默认路径安装,下载地址,安装完成后在Start Menu 搜索RabbitMQ可以看到RabbitMQ Command Prompt和RabbitMQ Service-Start等,启动RabbitMQ。

  3. RabbitMQ Management Plugin 安装
    这是一个RabbitMQ server的管理插件,可以在浏览器对server进行可视化管理,打开RabbitMQ Command Prompt,在命令行中输入一下命令:

    rabbitmq-plugins enable rabbitmq_management

    安装完成后再浏览器输入 http://localhost:15672/ 可以看到如下界面,表示安装成功

    Manager

  4. Client 客户端下载
    我下的是.NET/C#版本的,但要注意的是再unity4.0中不支持rabbitmq-dotnet-client-3.5.4-dotnet-4.0,我用的是rabbitmq-dotnet-client-3.4.4-dotnet-3.5,下载地址,.NET版本的Client直接将其中的dll和xml文件取出放在程序目录中使用就行。

tips:注意安装过程全部选择默认路径,这样安装后无需配置环境变量即可使用

RabbitMQ 简易使用

RabbitMQ还有很多复杂的操作,这里只介绍简单的使用以及我自己的理解,主要参考360doc的一篇文章RabbitMQ中 exchange、route、queue的关系 和CSDN一位博主的系列文章rabbitmq用法

“Hello World!”
  1. 基本概念
    Producer :发送消息的客户端
    Consumer : 接收消息的客户端
    Queue :Producer发送的消息的存放地方,Consumer从其中获取消息
  2. 实例(以下的代码都以在unity中的使用方法为例
    Producer(P)发送单个消息”Hello World”到指定的队列,Consumer(C)从队列中读取这个消息

    HelloWord

    Sending
    using UnityEngine;
    using System.Collections;
    using System.Threading;
    using RabbitMQ.Client;
    using System.Text;
    
    public class MQSenderV2 : MonoBehaviour {
    
    void Start () {
        Thread t = new Thread (new ThreadStart (ProcessMsg));
        t.Start ();
    }
    
    void ProcessMsg()
    {
        var factory = new ConnectionFactory() { HostName = "localhost" };
        using (var connection = factory.CreateConnection())
        {
            using (var channel = connection.CreateModel())
            {
                channel.ExchangeDeclare("topic_logs", "topic");
                channel.QueueDeclare("blowball_data", false, false, false, null);   
                channel.QueueBind("blowball_data", "topic_logs", "blowball.data.*");
    
                var routingKey = "blowball.data.test";
                var routingKey2 = "blowball.data.PK";
                var routingKey3 = "BBBGoal.data";
    
                int i;
                var body = Encoding.UTF8.GetBytes("");
                for(i=0;i<3;i++)
                {
                    body = Encoding.UTF8.GetBytes(message[i]);
                    channel.BasicPublish("topic_logs", routingKey, null, body);
                }
    
    
                Debug.Log("send side: "+"\n"+"routingKey: "+routingKey+"\nmessage: "+message);
            }
        }
    }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值