ActiveMQ入门 (六) 消息的投递方式

本文介绍了ActiveMQ的消息投递方式,包括同步发送、异步发送及其配置、延迟投递和定时投递。同步发送在消息保存到二级存储后才返回确认。异步发送允许在未收到确认时继续,可通过配置实现。延迟投递和定时投递则涉及到消息的延迟和定时发送策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ActiveMQ入门 (六) 消息的投递方式

一、消息投递方式

1.同步发送:

消息生产者使用持久(Persistent)传递模式发送消息的时候,Producer.send() 方法会被阻塞,直到broker 发送一个确认消息给生产者(ProducerAck),这个确认消息暗示broker已经成功接收到消息并把消息保存到二级存储中。

2.异步发送:

如果应用程序能够容忍一些消息的丢失,那么可以使用异步发送。异步发送不会在受到broker的确认之前一直阻塞 Producer.send方法。

2.1.如何实现异步:

想要使用异步,在brokerURL中增jms.alwaysSyncSend=false&jms.useAsyncSend=true属性
1)如果设置了alwaysSyncSend=true系统将会忽略useAsyncSend设置的值都采用同步
2)当alwaysSyncSend=false时,“NON_PERSISTENT”(非持久化)、事务中的消息将使用“异步发送”
3)当alwaysSyncSend=false时,如果指定了useAsyncSend=true,“PERSISTENT”类型的消息使用异步发送。
如果useAsyncSend=false,“PERSISTENT”类型的消息使用同步发送。

总结: 默认情况(alwaysSyncSend=false,useAsyncSend=false),非持久化消息、事务内的消息均采用
异步发送;对于持久化消息采用同步发送!

2.2.异步投递配置:

@Configuration
public class ActiveConfig {
   
/**
* 配置用于异步发送的非持久化JmsTemplate
*/
	@Autowired
	@Bean
	public JmsTemplate asynJmsTemplate(PooledConnectionFactory
pooledConnectionFactory) {
   
		JmsTemplate template = new JmsTemplate(p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值