1. 程式人生 > >RabbitMQ系列(一):Windows下RabbitMQ安裝及入門

RabbitMQ系列(一):Windows下RabbitMQ安裝及入門

1.Windows下安裝RabbitMQ需要以下幾個步驟

   (1):下載erlang,原因在於RabbitMQ服務端程式碼是使用併發式語言erlang編寫的,下載地址:http://www.erlang.org/downloads,雙擊.exe檔案進行安裝就好,安裝完成之後建立一個名為ERLANG_HOME的環境變數,其值指向erlang的安裝目錄,同時將%ERLANG_HOME%\bin加入到Path中,最後開啟命令列,輸入erl,如果出現erlang的版本資訊就表示erlang語言環境安裝成功;

                      

 

   (2):下載RabbitMQ,下載地址:http://www.rabbitmq.com/,同樣雙擊.exe進行安裝就好(這裡需要注意一點,預設的安裝目錄是C:/Program Files/....,這個目錄中是存在空格符的,我們需要改變安裝目錄,貌似RabbitMQ安裝目錄中是不允許有空格的,我之前踩過這個大坑);

   (3):安裝RabbitMQ-Plugins,這個相當於是一個管理介面,方便我們在瀏覽器介面檢視RabbitMQ各個訊息佇列以及exchange的工作情況,安裝方法是:開啟命令列cd進入rabbitmq的sbin目錄(我的目錄是:E:\software\rabbitmq\rabbitmq_server-3.6.5\sbin),輸入:rabbitmq-plugins enable rabbitmq_management命令,稍等會會發現出現plugins安裝成功的提示,預設是安裝6個外掛,如果你在安裝外掛的過程中出現了下面的錯誤:        


   解決方法是:首先在命令列輸入:rabbitmq-service stop,接著輸入rabbitmq-service remove,再接著輸入rabbitmq-service install,接著輸入rabbitmq-service start,最後重新輸入rabbitmq-plugins enable rabbitmq_management試試,我是這樣解決的;

   (4):外掛安裝完之後,在瀏覽器輸入http://localhost:15672進行驗證,你會看到下面介面,輸入使用者名稱:guest,密碼:guest你就可以進入管理介面,當然使用者名稱密碼你都可以變的;


2.安裝完RabbitMQ之後,我們先來簡單瞭解下RabbitMQ中涉及到的幾個概念

    producer:訊息生產者

    consumer:訊息消費者

     virtual host:虛擬主機,在RabbitMQ中,使用者只能在虛擬主機的層面上進行一些許可權設定,比如我可以訪問哪些佇列,我可以處理哪些請求等等;

     broker:訊息轉發者,也就是我們RabbitMQ服務端充當的功能了,那麼訊息是按照什麼規則進行轉發的呢?需要用到下面幾個概念;

     exchange:交換機,他是和producer直接進行打交道的,有點類似於路由器的功能,主要就是進行轉發操作的唄,那麼producer到底用哪個exchange進行路由呢?這個取決於routing key(路由鍵),每個訊息都有這個鍵,我們也可以自己設定,其實就是一字串;

     queue:訊息佇列,用於存放訊息,他接收exchange路由過來的訊息,我們可以對佇列內容進行持久化操作,那麼queue到底接收那個exchange路由的訊息呢?這個時候就要用到binding key(繫結鍵)了,繫結鍵會將佇列和exchange進行繫結,至於繫結方式,RabbitMQ提供了多種方式,大家可以看看鴻洋大神的RabbitMQ部落格系列(點選檢視);

     以上就是RabbitMQ涉及到的一些概念了,用一張圖表示這些概念之間的關係就是:


3.RabbitMQ簡單使用

   producer(生產者)端步驟:

    (1):建立ConnectionFactory,並且設定一些引數,比如hostname,portNumber等等

    (2):利用ConnectionFactory建立一個Connection連線

    (3):利用Connection建立一個Channel通道

    (4):建立queue並且和Channel進行繫結

    (5):建立訊息,並且傳送到佇列中

     注意,在我們當前的例子中,並沒有用到exchange交換機,RabbitMQ預設情況下是會建立一個空字串名字的exchange的,如果我們沒有建立自己的exchange的話,預設就是使用的這個exchange;

     producer端程式碼:

public class Sender {
	private final static String QUEUE_NAME = "MyQueue";
	
	public static void main(String[] args) {
		send();
	}
	
	public static void send()
	{
		ConnectionFactory factory = null;
		Connection connection = null;
		Channel channel = null;
		try {
			factory = new ConnectionFactory();
			factory.setHost("localhost");
			connection = factory.newConnection();
			channel = connection.createChannel();
			channel.queueDeclare(QUEUE_NAME, false, false, false, null);
			String message = "my first message .....";
			channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));
			System.out.println("已經發送訊息....."+message);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TimeoutException e) {
			e.printStackTrace();
		}finally{
			try {
				//關閉資源
				channel.close();
				connection.close();
			} catch (IOException e) {
				e.printStackTrace();
			} catch (TimeoutException e) {
				e.printStackTrace();
			}
		}
	}
}

     consumer(消費者)端步驟:

     (1):建立ConnectionFactory,並且設定一些引數,比如hostname,portNumber等等

     (2):利用ConnectionFactory建立一個Connection連線

     (3):利用Connection建立一個Channel通道

     (4):將queue和Channel進行繫結,注意這裡的queue名字要和前面producer建立的queue一致

     (5):建立消費者Consumer來接收訊息,同時將消費者和queue進行繫結

     consumer端程式碼:

public class Receiver {
	private final static String QUEUE_NAME = "MyQueue";
	
	public static void main(String[] args) {
		receive();
	}
	
	public static void receive()
	{
		ConnectionFactory factory = null;
		Connection connection = null;
		Channel channel = null;
		
		try {
			factory = new ConnectionFactory();
			factory.setHost("localhost");
			connection = factory.newConnection();
			channel = connection.createChannel();
			channel.queueDeclare(QUEUE_NAME, false, false, false, null);
			Consumer consumer = new DefaultConsumer(channel){
				@Override
				public void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties,
						byte[] body) throws IOException {
					System.out.println("11111111111");
					String message = new String(body, "UTF-8");
					System.out.println("收到訊息....."+message);
				}};
			channel.basicConsume(QUEUE_NAME, true,consumer);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TimeoutException e) {
			e.printStackTrace();
		}finally{
			try {
				//關閉資源
				channel.close();
				connection.close();
			} catch (IOException e) {
				e.printStackTrace();
			} catch (TimeoutException e) {
				e.printStackTrace();
			}
		}
	}
}
   好了,這篇先到這了,下一篇我會簡單介紹點更深入的東西,後續也會對RabbitMQ原生API進行封裝,便於我們自己開發;


相關推薦

RabbitMQ系列()WindowsRabbitMQ安裝入門

1.Windows下安裝RabbitMQ需要以下幾個步驟    (1):下載erlang,原因在於RabbitMQ服務端程式碼是使用併發式語言erlang編寫的,下載地址:http://www.erl

RabbitMQ()WindowsRabbitMQ安裝

exc nag 版本信息 命令 需要 gin 出現 erlang com 1.Windows下安裝RabbitMQ需要以下幾個步驟 (1):下載erlang,原因在於RabbitMQ服務端代碼是使用並發式語言erlang編寫的,下載地址:http://www.erla

(轉)windowsGraphviz安裝入門教程

http://www.cnblogs.com/onemorepoint/p/8310996.html 下載安裝配置環境變數 intall 配置環境變數 驗證 基本繪圖入門 graph digraph

windowsGraphviz安裝入門教程

下載安裝配置環境變數 intall 配置環境變數 驗證 基本繪圖入門 graph digraph 一個複雜的例子 和python互動 發現好的工具,如同發現新大陸。有時,我們會好奇,論文中、各種專業的書中那麼形象的插圖是如何做出來的,無一例外不是對繪圖工具的熟練使用。 下載安

windows Graphviz 安裝入門教程

下載安裝、配置環境變數 intall 雙擊msi檔案,然後一直next(記住安裝路徑,後面配置環境變數會用到路徑資訊),安裝完成之後,會在windows開始選單建立快捷資訊,預設快捷方式不放在桌面。 配置環境變數 將graphvi

RabbitMQ的學習()Windows安裝配置RabbitMQ,erlang環境變數

前言:從本章開始,慢慢去了解並深化架構師成長路上所需要的基礎框架:訊息中介軟體; 從這裡開始,會一直往下學習,從what to do到how to do 到why to do。先學會如何使用中介軟體,到後面慢慢去體會中介軟體原理及精髓,然後到最後自己再搭建一個簡單的中介軟體框架。這是該分類的

WindowsRabbitMQ安裝入門

guest plugins sys def 一個 top new all num 1.Windows下安裝RabbitMQ需要以下幾個步驟 (1):下載erlang,原因在於RabbitMQ服務端代碼是使用並發式語言erlang編寫的,下載地址:http://www

RabbitMQWindowsRabbitMQ安裝踩坑記錄

http://www.rabbitmq.com/install-windows.html  上圖是RabbitMQ官網首頁簡介,這裡要強調一下,我們安裝一個服務的時候切記不要盲目的搜中文帖子,建議先到官網首頁簡單瀏覽 ,比如上圖中的Important標註的文字就尤為重要!

Exchange Server 2016安裝部署系列Exchange 簡述,環境需求部署規劃

exchange 2016 先決條件 exchange 2016 準備ad和 exchange 2016 郵箱服務 exchange 2016 安裝 exchange 邊緣服務器部署 Exchange Server 2016簡述MicrosoftExchange Server 2016

兩小時eclipse入門idea系列idea的下載安裝破解一條龍服務

寫在前面:人總是有惰性的,也總會為惰性找到一個合理的藉口。比如我,一直以來都用著eclipse,各種配置信手拈來,不管別人怎麼吹捧idea,就不想去用,覺得eclipse就挺好,為啥要去重新熟悉一個陌生的工具?可是今天,好奇心驅動著吃了屎的心情去研究了一下子idea,以此為記。 1、下載idea

Python Windowspip安裝庫出錯Microsoft Visual C++ 9.0 is required < Unable to find vcvarsall.bat

一直在用Linux, 最近想在windows下使用python。  當我想安裝Matplotlib module的時候, 出現以下錯誤。Microsoft Visual C++ 9.0 is required < Unable to find vcvarsall.ba

()Ngnix在Windows安裝環境配置

首先也是重要的一個步驟,在Windows環境下如何安裝Ngnix服務呢? 前往http://nginx.org/en/download.html  下載合適的版本, 當然推薦的使用MainLine版本,下載好之後,解壓後雙擊Ngnix.exe 即可運行了(預設為80埠),若

Caffe學習筆記()——Windows caffe安裝與配置

本文主要介紹:經過一番周折,在Windows7 64位系統下成功配置Caffe,下面總結一下基本的配置過程,以及配置過程中遇到的問題。 配置環境:Windows7 X64 + CUDA7.0 + VS2013 + Matlab2014a 1.安裝C

Ipopt使用筆記windows安裝

需要安裝的軟體: 1. MSVC 2. Intel fortran  在windows7系統安裝Ipopt 1. 下載原始碼。 在目標資料夾右鍵,選擇tortoiseSVN/checkout。網址為:https://projects.coin-or.org/svn/Ip

< python音訊庫Windowspydub安裝配置、過程出現的問題常用API >

< python音訊庫:Windows下pydub安裝配置、過程出現的問題及常用API > 背景 剛從B站上看過倒放挑戰之後也想體驗下,心血來潮一個晚上完成了基本的實現。其中倒放與播放部分使用了pydub這個音訊庫,十分快捷方便,但是它完整一套的配置讓我還是踩了幾個坑。特將其配置過程記錄於此,方

redis 在Windows安裝基本操作(更新中~~~)

有用 redis 安裝 abc nbsp com inux eas pan 安裝目錄 Redis 安裝 Window 下安裝 下載地址:https://github.com/MSOpenTech/redis/releases。 Redis 支持 32 位和 64 位。這個需

windowsPyCharm安裝使用

網站 完成後 bug 用戶名 安裝包 sys 主機ip 創建桌面快捷方式 目錄 一、首先安裝pycharm,可以參考這篇文章:http://www.jianshu.com/p/042324342bf4 1、win10_X64,其他Win版本也可以。 2、PyCharm版

Tesseract 在 windows 安裝簡單應用

打開 版本信息 文本 否則 選擇 分享 16px alt 運行 Tesseract 是一個開源的 OCR 引擎,可以識別多種格式的圖像文件並將其轉換成文本,最初由 HP 公司開發,後來由 Google 維護。下載地址:https://digi.bib.uni-mannhei

WindowsMongodb安裝配置

本文摘自:https://blog.csdn.net/heshushun/article/details/77776706 一、先登入Mongodb官網https://www.mongodb.com/download-center#community 下載   安裝包。32、64位的都行

RoctetMQ windows安裝啟動

目錄 一、下載編譯後的二進位制檔案 二、解壓 三、啟動 四、 BAT一鍵啟動 一、下載編譯後的二進位制檔案 編譯後的二進位制檔案(下載此檔案則不需要編譯):http://rocketmq.apache.or