RabbitMQ指南(上)_Rabbit

來源:互聯網
上載者:User
原文出處:  Listen

RabbitMQ是一個訊息中介軟體,在一些需要非同步處理、發布/訂閱等情境的時候,使用RabbitMQ可以完成我們的需求。 下面是我在學習RabbitMQ的過程中的一些記錄,內容主要翻譯自RabbitMQ官網的Tutorials, 再加上我的一些個人理解。我將會用三篇文章來從RabbitMQ的Hello World介紹起,到最後的通過RabbitMQ實現RPC調用, 相信看完這三篇文章大家應該會對RabbitMQ的基本概念和使用有一定的瞭解。

說明: 由於RabbitMQ支援許多種語言的client,在這裡我使用的是Java語言的client。 所有的圖片均來自RabbitMQ官網。 Hello World

首先需要安裝RabbitMQ,關於RabbitMQ的安裝這裡就不贅述了,可以到RabbitMQ的官網去看相應的OS的安裝方法。 安裝完成後使用rabbitmq-server即可啟動RabbitMQ,RabbitMQ還提供了一個UI管理介面,本地預設的地址為localhost:15672, 使用者名稱和密碼均為guest。

安裝完成之後,按照慣例,先來完成一個簡單的Hello World的例子。 最簡單的一種訊息發送的模型為一個訊息寄件者(Producer)將訊息發送到Queue中,另一端的訊息接受者(Consumer)從Queue中接受訊息, 大致模型如下圖所示:

先來看發送的代碼,建立一個類命名為Send.java,代碼的第一步為串連server 1 2 3 4 ConnectionFactory factory = new ConnectionFactory(); factory.setHost( "localhost" ); Connection connection = factory.newConnection(); Channel channel = connection.createChannel();

connection抽象了socket的串連,並且為我們處理了協議版本的協商、許可權認證等等。這裡我們串連的是本地的中介軟體, 也就是localhost,接下來我們建立一個channel,這是大多數API完成任務的所在,也就是說我們的API操作基本都是通過channel來完成的。 1 2 3 4 channel.queueDeclare(QUEUE_NAME, false , false , false , null ); String message = "Hello World!" ; channel.basicPublish( "" , QUEUE_NAME, null , message.getBytes()); System.out.println( " [x] Sent '" + message + "'" );

首先是通過channel來聲明一個queue,並且聲明queue的操作是等冪的,也即是說只有在這個queue不存在的情況下才會新建立一個queue。 這裡發送一個Hello World!的訊息,實際傳遞的訊息內容為位元組數組。 1 2 channel.close(); connection.close();

最後關閉channel和connection的串連,注意關閉的順序,是先關閉channel的串連,再關閉connection的串連。

完整的Send.java代碼 1 2 3 4 5 6 7 8 9 10 11 12 13 14

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.