rabbitmq

是基于amqp协议开发的一款消息队列产品


根据ip地址加端口号15672登录到rabbitmq,默认账号密码是guest


建好用户之后,可以创建一个虚拟机


创建好虚拟机之后,将虚拟机加到用户里。点击虚拟机,设置虚拟机的用户


下面是一个hello_world的demo

生产者

package com.dt.producer;

import com.rabbitmq.client.Channel;

import com.rabbitmq.client.Connection;

import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;

import java.util.concurrent.TimeoutException;

public class Pro_HelloWorld {

public static void main(String[] args)throws IOException,TimeoutException {

//1.创建连接工厂

        ConnectionFactory factory =new ConnectionFactory();

//2.设置参数

        factory.setHost("192.168.198.131");

factory.setPort(5672);

factory.setVirtualHost("/dante");

factory.setUsername("dante");

factory.setPassword("dante");

//3.创建连接

        Connection connection =factory.newConnection();

//4.创建管道

        Channel channel =connection.createChannel();

//5.创建队列

      /*

String queue, boolean durable, boolean exclusive, boolean autoDelete, Map arguments

      queue:队列名      durable:是否持久化。重启mq后,是不是还在      exclusive:1是否独占2关闭连接后是否删除      autoDelete:在没有消费者时:是否自动删除      arguments:参数 目前填null

*/

        channel.queueDeclare("hello_world",true,false,false,null);

//6.发送消息

        String body ="hello rabbitmq";

/*

String exchange, String routingKey, BasicProperties props, byte[] body

        exchange:交换机名称 简单模式下默认填“”

        routingKey:路由名称        props:配置参数        body:消息*/

        channel.basicPublish("","hello_world",null,body.getBytes());

//释放资源

        channel.close();

connection.close();

}

}

消费者

package com.dt.customer;

import com.rabbitmq.client.*;

import java.io.IOException;

import java.util.concurrent.TimeoutException;

public class Customer_HelloWorld {

public static void main(String[] args)throws IOException,TimeoutException {

//1.创建连接工厂

        ConnectionFactory factory =new ConnectionFactory();

//2.设置参数

        factory.setHost("192.168.198.131");

factory.setPort(5672);

factory.setVirtualHost("/dante");

factory.setUsername("dante");

factory.setPassword("dante");

//3.创建连接

        Connection connection =factory.newConnection();

//4.创建管道

        Channel channel =connection.createChannel();

//5.创建队列

      /*

String queue, boolean durable, boolean exclusive, boolean autoDelete, Map arguments

      queue:队列名      durable:是否持久化。重启mq后,是不是还在      exclusive:1是否独占2关闭连接后是否删除      autoDelete:在没有消费者时:是否自动删除      arguments:参数 目前填null

*/

        channel.queueDeclare("hello_world",true,false,false,null);

Consumer consumer =new DefaultConsumer(channel) {

/*

            consumerTag:标识            envelope:获取对应信息 交换机 路由信息...

            properties:配置信息            body:数据信息*/

            @Override

            public void handleDelivery(String consumerTag,Envelope envelope,AMQP.BasicProperties properties,byte[] body)throws IOException {

System.out.println(consumerTag+"-"+envelope.getExchange()+"-"+properties+"-"+new String(body));

}

};

channel.basicConsume("hello_world",true,consumer);

}

}

依赖的包

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容