RabbitMQ消息队列

什么是rabbitMQ
RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue 高级消息队列协议 )的开源实现,
能够实现异步消息处理

	RabbitMQ是一个消息代理:它接受和转发消息。
	你可以把它想象成一个邮局:当你把你想要发布的邮件放在邮箱中时,你可以确定邮差先生最终将邮件发送给你的收件人。在这个比喻中,RabbitMQ是邮政信箱,邮局和邮递员。 
	RabbitMQ和邮局的主要区别在于它不处理纸张,而是接受,存储和转发二进制数据块
	
	优点:异步消息处理
		  业务解耦(下订单操作:扣减库存、生成订单、发红包、发短信),
					将下单操作主流程:扣减库存、生成订单
					然后通过MQ消息队列完成通知,发红包、发短信
		  错峰流控 (通知量 消息量 订单量大的情况实现MQ消息队列机制,淡季情况下访问量会少)
	
		  灵活的路由(Flexible Routing) 
			在消息进入队列之前,通过 Exchange 来路由消息的。对于典型的路由功能,RabbitMQ 已经提供了一些内置的 Exchange 来实现。针对更复杂的路由功能,可以将多个 Exchange 绑定在一起,也通过插件机制实现自己的 Exchange 。
	
	RabbitMQ网站端口号:15672

queue队列
Queue(队列)RabbitMQ的作用是存储消息,队列的特性是先进先出。
生产者生产消息最终被送到RabbitMQ的内部对象Queue中去,
而消费者则是从Queue队列中取出数据。

安装erlang平台
http://www.erlang.org/downloads 下载64位或32 安装包

配置erlang的环境变量
ERLANG_HOME: D:\Program Files\erl10.2
PATH: %ERLANG_HOME%\bin

	验证:cmd输入 erl

安装RabbitMQ(下载地址http://www.rabbitmq.com/install-windows.html)

 进入RabbitMQ安装目录:
	D:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.9\sbin
	
	地址栏输入cmd执行:rabbitmq-plugins.bat enable rabbitmq_management

重新启动RabbitMQ服务
用管理员启动cmd
执行:net stop RabbitMQ && net start RabbitMQ

创建Maven多模块,有两个子项目一个消息发送(rabbitmq-send) 一个接收消息(rabbitmq-receive)

在两个项目中配置RabbitMQ
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest

 在send项目中配置消息队列类
	.1 创建RabbitMQConfig类
	.2 在类上添加注解@Configuration
	.3 创建定义消息队列的方法,消息队列名称自定义(orderQueue1)
		@Bean
		public Queue queueMessage(){
			return new Queue("orderQueue1");
		}
	 在发送消息的Controller类中注入
		// 注入RabbitMQ操作模板
		@Autowired
		private AmqpTemplate amqpTemplate;
	
	 发送消息,通过模板调用方法convertAndSend(队列名称, 消息)
		amqpTemplate.convertAndSend("orderQueue1", jsonStr);
	
 在receive项目中只需要配置消息队列的监听,定义方法上
	在接收消息的方法上定义此注解并指定消息队列名称
	@RabbitListener(queues = "orderQueue1")
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值