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轮询分发

 

posted @ 2018-12-31 10:07  墨小枫233  阅读(1880)  评论(0编辑  收藏  举报