rabittmq初级教程

本文是RabbitMQ的初级教程,涵盖了从安装插件到使用各种模式的详细步骤。包括简单队列、工作队列、发布订阅、路由模式、主题模式以及消息确认机制,并探讨了Spring与RabbitMQ的集成。通过实例解析,帮助读者掌握RabbitMQ的基本操作和应用场景。
摘要由CSDN通过智能技术生成

1.前言

2.RabbitMQ-Plugins插件安装

3.简单队列

4.work queues 工作队列 轮询分发

5.公平分发

6.发布订阅模式

7.路由模式

8.Topic exchange

9.rabbitMQ的消息确认机制(事物+confirm)

10.Spring集合rabbitmq

 

1.前言

1.消息列队解决了什么问题??

异步处理

应用解耦

流量削峰(高并发:抢红包、秒杀)

日志处理……

 

2.java操作RabbitMQ

  1. simple 简单队列
  2. work queues 工作队列
  3. publish/subscribe 发布订阅
  4. routing 路由选择 通配符模式
  5. topic 主题
  6. 手动和自动确认消息
  7. 队列的持久化和非持久化
  8. RabbitMQ的延迟队列

3.Spring AMQP协议

 

 

2.RabbitMQ-Plugins插件安装

打开

进⼊入rabbitmq的

sbin⽬目录(我的⽬目录是:C:\Program Files\RabbitMQ

Server\rabbitmq_server-3.7.2\sbin),输⼊入:

rabbitmq-plugins enable rabbitmq_management

命令,稍等会会发现出现plugins安装成功的提示

 

打开浏览器进入 http://localhost:15672/ 用户名guest 密码guest

 

  • 添加用户:(huyanglin huyanglin )

 

  • virtual hosts 管理

virtual hosts 相当于mysql 的db

 

一般以/开头

 

我们需要对用户进行授权

 

 <dependencies>
  <dependency>
	<groupId>com.rabbitmq</groupId>
	<artifactId>amqp-client</artifactId>
	<version>3.4.1</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>

 

 

 

3.简单队列

P:消息的生产者-->队列-->消费者

连接rabbitmq

  public static Connection getConnections() throws IOException{
 
	  //定义一个连接工厂
	  ConnectionFactory factory=new ConnectionFactory();
	  //设置服务器ַ
	  factory.setHost("127.0.0.1");
      //	  AMQP  5672
	  factory.setPort(5672);
	  //vhost
	  factory.setVirtualHost("/vhost_mmr");
	  //用户名
	  factory.setUsername("huyanglin");
	  //密码
	  factory.setPassword("huyanglin");
	  Connection newConnection = factory.newConnection();
	  return newConnection;
  }

 

发送消息

  public static void main(String[] args) throws IOException {
 
	//1.获取链接
	  Connection connections = ConnectionUtils.getConnections();
	//2.创建通道
	  Channel channel = connections.createChannel();
	  channel.queueDeclare(QUEUE_NAME, false, false, false, null);
	  String msg="hello simple";
	  channel.basicPublish("", QUEUE_NAME, null, msg.getBytes());
	  System.out.println(msg);
	  channel.close();
	  connections.close();
}

 

监听(接收消息)

private static final String QUEUE_NAME="test_simple_queue";
public static void main(String[] args) throws IOException {
 
		//建立链接、创建通道
		Connection connections = ConnectionUtils.getConnections();
		Channel channel = connections.createChannel();
		//队列声明
		channel.queueDeclare(QUEUE_NAME, false, false, false, null)	;
		//定义消费者
		DefaultConsumer defaultConsumer = new DefaultConsumer(channel){
 
			//获取到达的消息
			@Override
			public void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties, byte[] body)
					throws IOException {
 
				String msg=new String(body,"utf-8");
				System.out.println("取数据"+msg);
			};
		};
		//消费队列
	channel.basicCons
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值