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

     

  • 相关阅读:
    前台线程与后台线程的区别
    触发器
    Asp.net AutopostBack 属性
    Spring实战拆书--SpringBean
    侣行APP
    用android去写一个小程序
    java如何使用JUnit进行单元测试
    JDK的安装与配置以及eclipse的使用
    软件工程第一次作业(1)
    软件工程第一次作业(2)
  • 原文地址:https://www.cnblogs.com/chengxiaolong/p/10206336.html
Copyright © 2020-2023  润新知