RabbitMq 使用手册
本文档为 RabbitMq 使用手册,介绍了 RabbitMq 的应用场景和开发指导。RabbitMq 是一个由 Erlang 开发的 AMQP(Advanced Message Queue)流行的开源消息队列系统。RabbitMq 的结构图如下:
RabbitMq 几个概念说明:
* Broker:简单来说就是消息队列服务器实体。
* Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
* Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
* Binding:绑定,它的作用就是把 exchange 和 queue 按照路由规则绑定起来。
* Routing Key:路由关键字,exchange 根据这个关键字进行消息投递。
* Vhost:虚拟主机,一个 broker 里可以开设多个 vhost,用作不同用户的权限分离。
* Producer:消息生产者,就是投递消息的程序。
* Consumer:消息消费者,就是接受消息的程序。
* Channel:消息通道,在客户端的每个连接里,可建立多个 channel,每个 channel 代表一个会话任务。
Exchange 类型有四种:
* Direct:直连模式
* Topic:主题模式
* Headers:标题模式
* Fanout:广播模式
应用场景:
2.1 异步处理场景:用户注册后,需要发注册邮件和注册短信。使用 RabbitMq 可以实现异步处理,提高处理速度。
2.2 应用解耦场景:订单系统需要通知库存系统。使用 RabbitMq 可以实现订单系统与库存系统的应用解耦。
2.3 流量削锋场景:秒杀活动中,使用 RabbitMq 可以控制活动的人数,缓解短时间内高流量压垮应用。
2.4 日志处理场景:使用 RabbitMq 可以将日志处理从应用中剥离出来,简化日志处理的架构。
2.5 消息通讯场景:使用 RabbitMq 可以实现点对点消息队列和聊天室效果。
RabbitMq 开发指导:
1. 配置文件:修改本地配置文件 rabbitmq.properties,设置 rabbitMQ 服务器地址、端口和用户信息。
2. 添加依赖包:在 pom.xml 文件中添加依赖包 `<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>1.5.6.RELEASE</version></dependency>`。
3. 消息提供方:将消息发送适配器实例化,并指明队列的名称和 routingKey。
4. 消息消费方:将消息消费者实例化,并指明队列的名称和 bindingKey。
本手册提供了 RabbitMq 的基本概念、应用场景和开发指导,为开发者提供了详细的 RabbitMq 使用指南。