zoukankan      html  css  js  c++  java
  • rabbitmq学习——安装测试

    环境 win7、spring4

    一、win7下安装mq的测试服务环境
    下载地址:http://www.erlang.org/download/otp_win32_R16B03.exe;
    http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.3/rabbitmq-server-3.2.3.exe

    开启mq管理工具:

    cmd : "C:Program Files (x86)RabbitMQ Server abbitmq_server-3.2.3sbin abbitmq-plugins.bat" enable rabbitmq_management

    要重启服务才能生效,可以执行

    cmd : net stop RabbitMQ && net start RabbitMQ

    创建用户:

    rabbitmqctl.bat add_user nihoutao nihoutao@2017

    add_user 后是账号  后是密码

    给角色和权限:

    rabbitmqctl.bat set_user_tags nihoutao administrator

    rabbitmqctl.bat set_permissions -p / nihoutao ".*" ".*" ".*"

    查看用户:

    此时用创建的账号登录mq管理系统

    二、在项目中配置环境

    pom.xml

    <dependencies>

                 <!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->

                 <dependency>

                        <groupId>com.rabbitmq</groupId>

                        <artifactId>amqp-client</artifactId>

                        <version>5.0.0</version>

                 </dependency>

                 <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->

                 <dependency>

                        <groupId>com.google.code.gson</groupId>

                        <artifactId>gson</artifactId>

                        <version>2.8.2</version>

                 </dependency>

                 <!-- https://mvnrepository.com/artifact/org.springframework.retry/spring-retry -->

                 <dependency>

                        <groupId>org.springframework.retry</groupId>

                        <artifactId>spring-retry</artifactId>

                        <version>1.2.1.RELEASE</version>

                 </dependency>

                 <!-- https://mvnrepository.com/artifact/org.springframework.amqp/spring-rabbit -->

                 <dependency>

                        <groupId>org.springframework.amqp</groupId>

                        <artifactId>spring-rabbit</artifactId>

                        <version>1.5.1.RELEASE</version>

                 </dependency>

          </dependencies>

    spring配置文件:

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xmlns:context="http://www.springframework.org/schema/context"

          xmlns:rabbit="http://www.springframework.org/schema/rabbit"

          xsi:schemaLocation="http://www.springframework.org/schema/beans

          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

          http://www.springframework.org/schema/beans

          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

          http://www.springframework.org/schema/rabbit

          http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd

          http://www.springframework.org/schema/context

          http://www.springframework.org/schema/context/spring-context-4.0.xsd">

          <!-- 加载配置属性文件 -->

        <context:property-placeholder ignore-unresolvable="true" location="classpath:config.properties" />

          <!-- 连接服务配置 如果MQ服务器在远程服务器上,请新建用户用新建的用户名密码 guest默认不允许远程登录 -->

          <rabbit:connection-factory id="connectionFactory"

                 host="${rabbitmq.host}"

                 username="${rabbitmq.username}"

                 password="${jdbc.password}"

                 port="${rabbitmq.port}"

                 virtual-host="/" channel-cache-size="5" />

          <!-- 配置admin,自动根据配置文件生成交换器和队列,无需手动配置 -->

          <rabbit:admin connection-factory="connectionFactory" />

          <!-- queue 队列声明 -->

          <rabbit:queue durable="true" auto-delete="false"

                 exclusive="false" name="spring.queue.tag" />

          <!-- exchange queue binging key 绑定 -->

          <rabbit:direct-exchange name="spring.queue.exchange"

                 durable="true" auto-delete="false">

                 <rabbit:bindings>

                        <rabbit:binding queue="spring.queue.tag" key="spring.queue.tag.key" />

                 </rabbit:bindings>

          </rabbit:direct-exchange>

          <!-- spring amqp默认的是jackson 的一个插件,

          目的将生产者生产的数据转换为json存入消息队列,

          由于Gson的速度快于jackson,这里替换为Gson的一个实现 -->

          <bean id="jsonMessageConverter" class="com.nihoutao.sent.Gson2JsonMessageConverter" />

          <!-- spring template声明 -->

          <rabbit:template id="amqpTemplate" exchange="spring.queue.exchange"

                 routing-key="spring.queue.tag.key" connection-factory="connectionFactory"

                 message-converter="jsonMessageConverter" />

    </beans>

    测试

    import com.rabbitmq.client.Channel;

    import com.rabbitmq.client.Connection;

    import com.rabbitmq.client.ConnectionFactory;

    public class Send {

         

          public static void main(String[] args) throws Exception{

                 ConnectionFactory factory = new ConnectionFactory();

                 factory.setHost("localhost");

                 Connection connection = factory.newConnection();

                 Channel channel = connection.createChannel();

                

                 /*获取tcp其中的一个通道后  进行队列声明

                 参数1 队列名字

                 参数2 是否持久化

                 参数3 只被一个链接使用,链接关闭后删除

                 参数4 最后一个消费者退订后删除*/

                 channel.queueDeclare("wuqidi", false, false, false, null);

                

                 /*发布到队列中

                  * 参数1 交换机 默认交换机

                  * 参数2 路由key

                  * 参数3 参数

                  * 参数4 发送的信息 proCon

                  * */

                 channel.basicPublish("", "wuqidi", null, "十九大重要会议在即".getBytes());

                

                 channel.close();

                 connection.close();

          }

    }


    参考:
    http://www.cnblogs.com/shanyou/p/4067250.html

  • 相关阅读:
    JAVA 8 主要新特性 ----------------(二)JDK1.8优点概括
    js 对cookie 的操作
    js 中类似时钟的显示
    js 把数字转成2 ,8,16进制的方法
    js 对闭包的理解
    js 利用throw 写的一个小程序
    js 获取当前的时间
    ios使用jspatch中需要注意的事项
    IOS 开发中要注意的事项
    iOS 利用JSPatch 添加热补丁功能
  • 原文地址:https://www.cnblogs.com/core404/p/7640299.html
Copyright © 2011-2022 走看看