RabbitMQ入門教程


 

 

RibbitMQ安裝

 

下載ERL https://pan.baidu.com/s/1c1UaGpU

下載MQ http://www.rabbitmq.com/releases/rabbitmq-server/

 

安裝erl

yum install -y erlang-19.0.4-1.el6.x86_64.rpm

 

安裝mq

yum install -y rabbitmq-server-3.6.0-1.noarch.rpm

 

#開啟web管理插件

rabbitmq-plugins enable rabbitmq_management

#啟動服務

service rabbitmq-server start

 

#添加用戶和刪除guest

rabbitmqctl add_user admin 123456

rabbitmqctl set_user_tags admin administrator

rabbitmqctl delete_user guest

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

 

 WEB訪問:http://IP:15672/

用戶名:admin      密碼:123456

 

清空一個隊列的數據

rabbitmqctl -p ${vhost-name} purge_queue ${queue-name}

 

Service rabbitmq-server start  啟動

Service rabbitmq-server stop  關閉

Service rabbitmq-server restart 重啟

 

設置開機啟動

Chkconfig rabbitmq-server on

 

 

RibbitMQ-WEBUI的使用

添加用戶

 

添加vhost

Vhost就類似於數據庫

一般以斜杠開頭

授權:

點進去

這樣就授權成功了

 

 

Overview

提供了一些可視化的信息,監控

 

Connections 連接

可以看到哪個用戶連的哪個數據庫

 

Channels通道

 

 

Exchanges交換機

 

 

 

Simple簡單隊列

 

https://img-blog.csdnimg.cn/20181229103738932

創建項目

導入依賴

Pom.xml

<dependencies>

 

  <dependency>

      <groupId>com.rabbitmq</groupId>

      <artifactId>amqp-client</artifactId>

      <version>4.0.2</version>

  </dependency>

 

      <dependency>

      <groupId>org.slf4j</groupId>

      <artifactId>slf4j-api</artifactId>

      <version>1.7.10</version>

  </dependency>

 

      <dependency>

      <groupId>org.slf4j</groupId>

      <artifactId>slf4j-log4j12</artifactId>

      <version>1.7.5</version>

  </dependency>

 

      <dependency>

      <groupId>log4j</groupId>

      <artifactId>log4j</artifactId>

      <version>1.2.17</version>

  </dependency>

 

      <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.11</version>

  </dependency>

 

  </dependencies>

 

獲取MQ連接

寫工具類

package com.cxl.rbmq.util;

 

import java.io.IOException;

import java.util.concurrent.TimeoutException;

 

import com.rabbitmq.client.Connection;

import com.rabbitmq.client.ConnectionFactory;

 

public class ConnectionUtil {

  

  

   /**

    * 獲取MQ的連接

    * @return

    * @throws TimeoutException

    * @throws IOException

    */

   public static Connection getConnection() throws IOException, TimeoutException {

      //定義一個連接工廠

      ConnectionFactory factory = new ConnectionFactory();

     

      //設置服務地址

      factory.setHost("192.168.190.129");

     

      //AMQP port

      factory.setPort(5672);

     

      //vhost

      factory.setVirtualHost("/");

     

      //設置用戶名

      factory.setUsername("admin");

      //設置密碼

      factory.setPassword("123456");

      return factory.newConnection();

   }

 

}

 

 

 

發送消息(提供者)

package com.cxl.rbmq.simple;

 

import java.io.IOException;

import java.util.concurrent.TimeoutException;

 

import com.cxl.rbmq.util.ConnectionUtil;

import com.rabbitmq.client.Channel;

import com.rabbitmq.client.Connection;

public class Send {

  

  

   private static final String QUEUE_NAME ="test_simple_queue";

  

  

   public static void main(String[] args) throws IOException, TimeoutException {

     

      //獲取一個連接

      Connection connection = ConnectionUtil.getConnection();

      //從連接中獲取一個通道

      Channel channel = connection.createChannel();

      //創建隊列聲明

      channel.queueDeclare(QUEUE_NAME, false, false, false, null);

     

      String mString = "hello simple!";

     

      channel.basicPublish("", QUEUE_NAME, null, mString.getBytes());

     

      System.out.println("--send msg:"+mString);

     

      channel.close();

      connection.close();

   }

 

}

 

發送消息成功

獲取消息(消費者)

 

接收到了消息

 

 

 

 

(擴展)新的javaAPI

 

簡單隊列不足
 

 

 

Round-robin輪詢分發

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM