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

原文地址:https://www.cnblogs.com/core404/p/7640299.html