zoukankan      html  css  js  c++  java
  • 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轮询分发

     

  • 相关阅读:
    实验楼第二期比赛第二题
    基础练习题
    基本数据类型:数字、字符串、列表、元祖、字典、集合
    二进制与十进制转换
    Python基础--1.2 变量循环基础介绍
    Python基础--1.1Python基础介绍
    旋转木马特效代码
    javascript中全屏滑动效果实现
    正则基础知识总结
    getElementsByClassName 方法兼容性封装方法二
  • 原文地址:https://www.cnblogs.com/chengxiaolong/p/10206336.html
Copyright © 2011-2022 走看看