1. 程式人生 > >譯: 1. RabbitMQ Spring AMQP 之 Hello World

譯: 1. RabbitMQ Spring AMQP 之 Hello World

lock tutorials -s 消費者 spa 發送 等待 編輯器 緩沖

本文是譯文,原文請訪問:http://www.rabbitmq.com/tutorials/tutorial-one-spring-amqp.html

RabbitMQ 是一個Brocker (消息隊列服務器),它接受和轉發消息 .

你可以將它當做郵局:

當你將要發布的郵件放在郵箱中時,您可以確定郵件先生或Mailperson女士最終會將郵件發送給您的收件人。在這個比喻中,RabbitMQ是郵箱,郵局和郵遞員。

RabbitMQ和郵局之間的主要區別在於它不處理信紙,而是接受,存儲和轉發二進制大對象 blob(binary large object )數據 ——消息

RabbitMQ和一般的消息傳遞使用了一些術語

1. 生產者

生產者僅僅只是發送。一個發送消息的程序就是生產者:

技術分享圖片

2. 隊列

隊列是RabbitMQ中的郵箱的名稱。雖然消息流經RabbitMQ和您的應用程序,但它們只能存儲在隊列中隊列僅由主機的存儲器和磁盤限制約束,它本質上是一個大的消息緩沖器。

許多生產者可以發送到一個隊列的消息,並且許多消費者可以嘗試從一個隊列接收數據這就是我們代表隊列的方式:

技術分享圖片

3. 消費者

消費這與生產者有類似的意義。一個消費者是一個程序,主要是等待接收信息:

技術分享圖片

請註意,生產者,消費者和代理不必駐留在同一主機上; 實際上在大多數應用中他們沒有。應用程序既可以是生產者也可以是消費者。

"Hello World"

(使用 spring-amqp client)

在本教程的這一部分中,我們將使用spring-amqp庫編寫兩個程序; 發送單個消息的生產者,以及接收消息並將其打印出來的消費者。

我們將掩蓋Spring-amqp API中的一些細節,專註於這個非常簡單的事情才開始。它是消息傳遞的“Hello World”。

在下圖中,“P”是我們的生產者,“C”是我們的消費者。中間的框是一個隊列 - RabbitMQ代表消費者保留的消息緩沖區。

技術分享圖片

Spring AMQP框架

RabbitMQ說多種協議。本教程使用AMQP 0-9-1,它是一種開放的,通用的消息傳遞協議。RabbitMQ有許多不同語言的客戶端

Spring AMQP利用Spring Boot進行配置和依賴管理。Spring支持maven或gradle,但在本教程中,我們將選擇帶有Spring Boot 1.5.2的maven

打開 http://start.spring.io/

提供:

  • group id (列如: org.springframework.amqp.tutorials)
  • artifact id (e.g. rabbitmq-amqp-tutorials)
  • 搜索 RabbitMQ依賴,然後選擇 RabbitMQ 依賴

生成項目並將生成的項目解壓縮到您選擇的位置。

現在可以將其導入您喜歡的IDE中。或者,您可以從您喜歡的編輯器處理它。

譯: 1. RabbitMQ Spring AMQP 之 Hello World