1. 程式人生 > >RabbitMQ簡介、安裝、基本特性API--Java測試

RabbitMQ簡介、安裝、基本特性API--Java測試

新的閱讀體驗地址:http://www.zhouhong.icu/post/141

本篇文章所有的程式碼:https://github.com/Tom-shushu/Distributed-system-learning-notes/tree/master/rabbitmq-api-demo

一、初識RabbitMQ

是一個開源的訊息代理和佇列伺服器,用來通過普通協議在完全不同的應用之間共享資料,RabbitMQ是使用Erlang語言來編寫的,並且RabbitMQ是基於AMQP協議的。
AMQP協議Advanced Message Queuing Protocol(高階訊息佇列協議)
 定義:具有現代特徵的二進位制協議,是一個提供統一訊息服務的應用層標準高階訊息佇列協議, 是應用層協議的一個開放標準,為面向訊息中介軟體設計。
AMQP專業術語:
  • Server:又稱broker,接受客戶端的連結,實現AMQP實體服務
  • Connection:連線,應用程式與broker的網路連線
  • Channel:網路通道,幾乎所有的操作都在channel中進行,Channel是進行訊息讀寫的通道。客戶端可以建立多個channel,每個channel代表一個會話任務。
  • Message:訊息,伺服器與應用程式之間傳送的資料,由Properties和Body組成.Properties可以對訊息進行修飾,必須訊息的優先順序、延遲等高階特性;Body則是訊息體內容。
  • virtualhost: 虛擬地址,用於進行邏輯隔離,最上層的訊息路由。一個virtual host裡面可以有若干個Exchange和Queue,同一個Virtual Host 裡面不能有相同名稱的Exchange 或 Queue。
  • Exchange:交換機,接收訊息,根據路由鍵轉單訊息到繫結佇列
  • Binding:  Exchange和Queue之間的虛擬連結,binding中可以包換routing key
  • Routing key: 一個路由規則,虛擬機器可用它來確定如何路由一個特定訊息。(如負載均衡)
RabbitMQ整體架構

Exchange和佇列是多對多關係,實際操作一般為1個exchange對多個佇列,為避免設計過於複雜.

二、單機版快速安裝

  • 1、首先在Linux上進行一些軟體的準備工作

yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz
  • 2、下載安裝必要的軟體
  • 備用地址:
    • https://www.rabbitmq.com/install-rpm.html#downloads
    • https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/

wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.0.4/erlang-23.0.4-1.el7.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-3.8.5-1.el7.noarch.rpm