RabbitMQ安裝和測試小記

來源:互聯網
上載者:User

作業系統CentOS x86_64 5.4

 

安裝Erlang

可以到www.erlang.org去下載最新的源碼,編譯安裝。

不過RabbitMQ的官方文檔建議使用yum安裝。

 

EPEL是啥?

參見http://fedoraproject.org/wiki/EPEL/FAQ#howtouse

 

安裝步驟:

 

wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm

 

rpm -Uvh epel-release-5-3.noarch.rpm

 

yum install erlang

 

 

安裝RabbitMQ

到 http://www.rabbitmq.com/server.html 下載

rabbitmq-server-1.7.2-1.x86_64.rpm

 

 

然後

 

rpm -ivh rabbitmq-server-1.7.2-1.x86_64.rpm

 

 

運行RabbitMQ

 

/etc/init.d/rabbitmq-server start

 

 

注意

RabbitMQ使用了5672連接埠,修改iptables把5672連接埠開啟。

 

測試

在官網下載java的用戶端rabbitmq-java-client-bin-1.7.2.tar.gz

 

訊息發布

import com.rabbitmq.client.Channel;<br />import com.rabbitmq.client.Connection;<br />import com.rabbitmq.client.ConnectionFactory;<br />import com.rabbitmq.client.ConnectionParameters;<br />import com.rabbitmq.client.MessageProperties;<br />public class PublishTest {<br />public static void main(String[] args) {<br />try {<br />ConnectionParameters params = new ConnectionParameters();<br />params.setUsername("guest");<br />params.setPassword("guest");<br />params.setVirtualHost("/");<br />params.setRequestedHeartbeat(0);<br />ConnectionFactory factory = new ConnectionFactory(params);<br />Connection conn = factory.newConnection("192.168.56.110", 5672);<br />Channel channel = conn.createChannel();<br />channel.exchangeDeclare("exchange1", "direct", true);<br />channel.queueDeclare("queue1", true);<br />channel.queueBind("queue1", "exchange1", "key1");<br />byte[] messageBodyBytes = "Hello, world!".getBytes();<br />channel.basicPublish("exchange1", "key1", MessageProperties.PERSISTENT_TEXT_PLAIN, messageBodyBytes);<br />channel.close();<br />conn.close();<br />System.out.println("Over.");<br />} catch (Exception e) {<br />e.printStackTrace();<br />}<br />}<br />} 

 

訊息接收

import com.rabbitmq.client.Channel;<br />import com.rabbitmq.client.Connection;<br />import com.rabbitmq.client.ConnectionFactory;<br />import com.rabbitmq.client.ConnectionParameters;<br />import com.rabbitmq.client.GetResponse;<br />public class ConsumerTest {<br />public static void main(String[] args) {<br />try {<br />ConnectionParameters params = new ConnectionParameters();<br />params.setUsername("guest");<br />params.setPassword("guest");<br />params.setVirtualHost("/");<br />params.setRequestedHeartbeat(0);<br />ConnectionFactory factory = new ConnectionFactory(params);<br />Connection conn = factory.newConnection("192.168.56.110", 5672);<br />Channel channel = conn.createChannel();<br />boolean noAck = false;<br />GetResponse response = channel.basicGet("queue1", noAck);<br />if (response == null) {<br />System.out.println("No message!");<br />} else {<br />byte[] body = response.getBody();<br />long deliveryTag = response.getEnvelope().getDeliveryTag();<br />String str = new String(body);<br />System.out.println(str);<br />channel.basicAck(deliveryTag, false); // acknowledge receipt of the message<br />}<br />channel.close();<br />conn.close();<br />} catch (Exception e) {<br />e.printStackTrace();<br />}<br />}<br />} 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.