新乡手机网站建设官网,怎样管理网站,用网盘做网站,怎么让自己做的网站别人可以访问目录 一、在centos上下载MQ镜像
二、安装运行容器
三、登录进入MQ
1、添加一个新的用户
2、新建虚拟机
3、 为用户分配权限
四、RabbitMQ的基本概念
RabbitMQ中的几个概念:
五、常见消息模型
六、简单的消息生产与消费
1、消费者类
2、生产者类
3、基本消息队列的消…目录 一、在centos上下载MQ镜像
二、安装运行容器
三、登录进入MQ
1、添加一个新的用户
2、新建虚拟机
3、 为用户分配权限
四、RabbitMQ的基本概念
RabbitMQ中的几个概念:
五、常见消息模型
六、简单的消息生产与消费
1、消费者类
2、生产者类
3、基本消息队列的消息发送流程:
4、基本消息队列的消息接收流程: 一、在centos上下载MQ镜像
docker pull rabbitmq:3-management
二、安装运行容器
docker run \-e RABBITMQ_DEFAULT_USERitcast \-e RABBITMQ_DEFAULT_PASS123456 \--name mq \--hostname mq1 \-p 15672:15672 \-p 5672:5672 \-d \rabbitmq:3-management
三、登录进入MQ 1、添加一个新的用户 2、新建虚拟机 3、 为用户分配权限 四、RabbitMQ的基本概念 Publisher是消息的发送者负责将消息发送到交换机交换机负责路由将消息暂存到消息队列队列负责暂存消息消费者从队列获取消息然后处理消息每个虚拟主机相互之间是隐藏的避免干扰
RabbitMQ中的几个概念:
channel:操作MQ的工具exchange:路由消息到队列中queue:缓存消息virtual host:虚拟主机是对queue、exchange等资源的逻辑分组
五、常见消息模型 六、简单的消息生产与消费
1、消费者类
package cn.itcast.mq.helloworld;import com.rabbitmq.client.*;import java.io.IOException;
import java.util.concurrent.TimeoutException;public class ConsumerTest {public static void main(String[] args) throws IOException, TimeoutException {// 1.建立连接ConnectionFactory factory new ConnectionFactory();// 1.1.设置连接参数分别是主机名、端口号、vhost、用户名、密码factory.setHost(192.168.248.152);factory.setPort(5672);factory.setVirtualHost(/);factory.setUsername(itcast);factory.setPassword(123456);// 1.2.建立连接Connection connection factory.newConnection();// 2.创建通道ChannelChannel channel connection.createChannel();// 3.创建队列String queueName simple.queue;channel.queueDeclare(queueName, false, false, false, null);// 4.订阅消息channel.basicConsume(queueName, true, new DefaultConsumer(channel){Overridepublic void handleDelivery(String consumerTag, Envelope envelope,AMQP.BasicProperties properties, byte[] body) throws IOException {// 5.处理消息String message new String(body);System.out.println(接收到消息【 message 】);}});System.out.println(等待接收消息。。。。);}
}2、生产者类
package cn.itcast.mq.helloworld;import com.rabbitmq.client.*;import java.io.IOException;
import java.util.concurrent.TimeoutException;public class ConsumerTest {public static void main(String[] args) throws IOException, TimeoutException {// 1.建立连接ConnectionFactory factory new ConnectionFactory();// 1.1.设置连接参数分别是主机名、端口号、vhost、用户名、密码factory.setHost(192.168.248.152);factory.setPort(5672);factory.setVirtualHost(/);factory.setUsername(itcast);factory.setPassword(123456);// 1.2.建立连接Connection connection factory.newConnection();// 2.创建通道ChannelChannel channel connection.createChannel();// 3.创建队列String queueName simple.queue;channel.queueDeclare(queueName, false, false, false, null);// 4.订阅消息channel.basicConsume(queueName, true, new DefaultConsumer(channel){Overridepublic void handleDelivery(String consumerTag, Envelope envelope,AMQP.BasicProperties properties, byte[] body) throws IOException {// 5.处理消息String message new String(body);System.out.println(接收到消息【 message 】);}});System.out.println(等待接收消息。。。。);}
}3、基本消息队列的消息发送流程:
建立connection创建channel利用channel声明队列利用channel向队列发送消息
4、基本消息队列的消息接收流程:
建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定
注意
都有创建队列的原因是因为避免队列不存在