1. 程式人生 > >RabbitMQ 快速入門

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

    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);
            }
        }
    }
    }

相關推薦

RabbitMQ快速入門

提高 The clas rod serializa java 一個隊列 有一個 中間件 用處: 將一些無需即時返回且耗時的操作提取出來。進行了異步處理,而這種異步處理的方式大大的節省了server的請求響應時間,從而提高了系統的吞吐量。

RabbitMQ 快速入門

RabbitMQ 使用入門 專案需要接觸了幾天 RabbitMQ ,在此把自己學習的東西記錄下來和大家交流,望大家指教。 什麼是 RabbitMQ RabbitMQ主要是在AMQP協議標準基礎上完成的,主要是用於大型應用程式,作為不同應用程式之間傳遞訊

SpringBoot整合RabbitMQ(一)快速入門

MQ全稱為Message Queue, 訊息佇列(MQ)是一種應用程式對應用程式的通訊方法。MQ是消費-生產者模型的一個典型的代表,一端往訊息佇列中不斷寫入訊息,而另一端則可以讀取佇列中的訊息。訊息中介軟體最主要的作用是解耦,中介軟體最標準的用法是生產者生產訊息傳送到佇列,消費者從佇列中拿取訊息並處理,

訊息中介軟體——RabbitMQ(五)快速入門生產者與消費者,SpringBoot整合RabbitMQ

前言 本章我們來一次快速入門RabbitMQ——生產者與消費者。需要構建一個生產端與消費端的模型。什麼意思呢?我們的生產者傳送一條訊息,投遞到RabbitMQ叢集也就是Broker。 我們的消費端進行監聽RabbitMQ,當發現佇列中有訊息後,就進行消費。 1. 環境準備 本次整合主要採用Spring

day39-Spring 12-Spring的JDBC模板:快速入門

pri 哪些 困難 ces 5.0 使用 只需要 common commons Spring AOP的關鍵是它的底層的原理和思想,配置和使用並不是十分困難.AOP本身就是一個思想,是面向對象的延伸,不是用來替換面向對象的,而是用來解決面向對象中的一些問題的.在最初的時候提出

vuex2快速入門

for nbsp mar lin ext mac os cnblogs value san #建立store.jsimport Vue from ‘vue‘; import Vuex from ‘vuex‘; Vue.use(Vuex) export d

快速入門系列--WCF--07傳輸安全、授權與審核

最大的 緩存 ims cut 常見 曾經 strong 這一 set 這部分主要涉及企業級應用的安全問題,一般來說安全框架主要提供3個典型的安全行為:認證、授權和審核。除了典型的安全問題,對於一個以消息作為通信手段的分布式應用,還需要考慮消息保護(Message Prote

快速入門系列

body 現在 安全 behavior 需求 discovery 中心 驗證 溝通 最後一章將進行WCF擴展和新特性的學習,這部分內容有一定深度,有一個基本的了解即可,當需要自定義一個完整的SOA框架時,可以再進行細致的學習和實踐。 服務端架構體系的構建主要包含接下來

快速入門系列--WCF--02消息、會話與服務寄宿

abc align bsp 不同的 cpu .org 程序 伸縮 網絡 經過WCF基礎的ABC學習,已經可以構建簡單的WCF的服務,使用不同的服務地址和綁定類型,根據業務提供所需的服務契約。但不禁想問,服務所使用的消息報文是什麽樣的形式麽?蘊含什麽樣內容呢?WCF服務是否支

python 基本語法速覽,快速入門

我們 method adding ger monk use gre 數據類型 struct https://zhuanlan.zhihu.com/p/24536868 學習參考於這個博文。 我做一個筆記。 關於python一些常用的語法快速的預覽,適合已經掌握一門編程語

Django REST framework 的快速入門教程

ret turn ads 使用 blog 所有 定義 想去 cti CRM-API項目搭建 序列器(Serializers) 首先,我們來定義一些序列器。我們來創建一個新的模塊(module)叫做 crm/rest_searializer.py ,這是我們用來描述數據是如何

Celery 分布式任務隊列快速入門

ade sunday reat 失敗 繼續 complete port 機器 single Celery介紹和基本使用 在項目中如何使用celery 啟用多個workers Celery 定時任務 與django結合 通過django配置celery period

Unity快速入門

小冰 教程 應該 arp nbsp 2.3 入門 模擬操作 飛機 1.熟悉基本操作。 最權威的應該是官方出品,158元的Unity官方教程,其他的基礎操作視頻 lynda 的5.0 ,5.4都可以 2.熟悉簡單例子,將API熟悉一下啊,這個過程中,背誦API是捷徑。 2

Vue.js——60分鐘快速入門

attribute 否則 style屬性 快速 基於 oid creat get rac Vue.js是當下很火的一個JavaScript MVVM庫,它是以數據驅動和組件化的思想構建的。相比於Angular.js,Vue.js提供了更加簡潔、更易於理解的API,使得我們能

Redis快速入門

pool har 語法 ansi 使用 https 測試的 對象 sta Redis快速入門 一、簡介 Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的A

快速入門系列--WebAPI--03框架你值得擁有

let lan 最重要的 reason cnblogs err 註意 解釋 max 接下來進入的是俺在ASP.NET學習中最重要的WebAPI部分,在現在流行的互聯網場景下,WebAPI可以和HTML5、單頁應用程序SPA等技術和理念很好的結合在一起。所謂ASP.N

快速入門系列--WebAPI--01基礎

簡單例子 codec 應該 sem ons 請求重定向 選擇 char 阻止 ASP.NET MVC和WebAPI已經是.NET Web部分的主流,剛開始時兩個公用同一個管道,之後為了更加的輕量化(WebAPI是對WCF Restful的輕量化),WebAPI使用了新的管道

快速入門系列--MVC--06視圖

出版 value 快速入門 stream 類型 path .cn esc eba 到了View的呈現板塊,感覺ASP.NET MVC的學習也進入了尾聲,還是比較開心的,畢竟也有了不小收獲。這部分內容相對比較簡單,因為之前還專門學習過如何結合HTML5與MVC框架。前

快速入門系列--CLR--03泛型集合

value mov nts readonly 只有一個 並且 cer view 工作 .NET中的泛型集合 在這裏主要介紹常見的泛型集合,很多時候其並發時的線程安全性常常令我們擔憂。因而簡述下.NET並發時線程安全特性,其詳情請見MSDN。 普通集合都不支持多重並發寫操

MongoDb的基本操作快速入門

基本操作 mongodb mongodb增刪該查操作示例 mongodb快速入門 1.MongoDb簡介 mongodb是一個基於分布式存儲的開源數據庫系統又被稱為文檔數據庫,可以將數據存儲為一個文檔,數據結構有鍵值對(key=>value)對組成,存儲的文檔類似於JSON對象(BS