rabbitMQ的使用

安装和配置这里就不多说了,网上有很多的教程,这里说明如何使用rabbitMQ

(这里简单说明点对点的模式,也有发布订阅等多种模式)
1.需要创建两个maven工程,一个是任务的发送者另一个是任务的接受者
有两个子项目一个消息发送(rabbitmq-send) 一个接收消息(rabbitmq-receive)

2.在两个项目中添加配置如下:

spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest

3.在消费的发送方添加如下代码:

.1 创建RabbitMQConfig类
.2 在类上添加注解@Configuration
.3 创建定义消息队列的方法,消息队列名称自定义(orderQueue1)
@Bean
public Queue queueMessage(){
return new Queue(“orderQueue1”);
}
.4 在发送消息的Controller类中注入
// 注入RabbitMQ操作模板
@Autowired
private AmqpTemplate amqpTemplate;
.5 发送消息,通过模板调用方法convertAndSend(队列名称, 消息)
@Autowired
	private AmqpTemplate rabbitTemplate;
 
	public void send(LogOper logOper) {
		log.info("Sender logOper: " + logOper.toString());
		rabbitTemplate.convertAndSend("logOper", logOper);
	}


使用amqpTemplate(官方自带的第三方工具,类似sql的template模板工具,调用发送的消息)

4.在消息的接收方定义如下代码:

定义方法上定义方法上
在接收消息的方法上定义此注解并指定消息队列名称
@Slf4j
@Component
@RabbitListener(queues = "logOper")
public class LogConsumer {
 
	@Autowired
	private LogOperDao logOperDao;
 
	@RabbitHandler
	public void process(LogOper logOper) {
		log.info("Receiver logOper : " + logOper);
		logOperDao.addLogOper(logOper);
	}
 
}

配置消息的监听的名称logOper

5.此时在程序中,根据具体的业务场景调用数据,是生成的数据,返回到消息队列中,消费者在监听到数据之后,会自动返回生成的数据

RabbitMQ是一个使用Erlang实现的高并发高可靠AMQP消息队列服务器。它支持消息的持久化、事务、拥塞控制、负载均衡等特性,使得RabbitMQ在各种应用场景下被广泛使用RabbitMQ与Erlang和AMQP密切相关。 Erlang是一种编程语言,它特别适合构建高并发、分布式、实时的系统。RabbitMQ使用Erlang作为其底层开发语言,这使得它能够充分利用Erlang在并发处理和容错性方面的优势。 AMQP(Advanced Message Queuing Protocol)是一个开放标准的消息队列协议,用于在应用程序之间进行可靠的消息传递。RabbitMQ实现了AMQP协议,这意味着它可以与其他遵循AMQP协议的应用程序进行通信,实现可靠的消息传递机制。 要使用RabbitMQ,可以通过Docker安装,使用以下命令运行一个带有管理界面的RabbitMQ容器: ``` docker run -itd --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management ``` 在编写RabbitMQ程序时,可以利用其支持的多种消息模型,例如发布-订阅模型、工作队列模型、路由模型等,根据具体需求选择合适的模型来实现消息传递。 在配置RabbitMQ环境时,可以设置RABBITMQ_SERVER环境变量,并将RabbitMQ的安装路径添加到系统的path变量中,以方便在命令行中直接使用RabbitMQ命令。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [RabbitMQ使用详解](https://blog.youkuaiyun.com/qq_43410878/article/details/123656765)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值