譯: 1. RabbitMQ Spring AMQP 之 Hello World
本文是譯文,原文請訪問: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