【发布时间】:2020-10-02 05:44:21
【问题描述】:
我有一个配置,其中一次有 10 条消息并行传入 SQS 队列。 要使用它,我正在使用 JmsListener。
让我告诉你我的配置:
public SQSConnectionFactory sqsConnectionFactory() {
// Create a new connection factory with all defaults (credentials and region) set automatically
return new SQSConnectionFactory(new ProviderConfiguration(),
AmazonSQSClientBuilder.standard().withRegion(Regions.AP_SOUTH_1)
.withCredentials(DefaultAWSCredentialsProviderChain.getInstance()).build());
}
@Bean("jmsListenerContainerFactory")
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(sqsConnectionFactory());
factory.setDestinationResolver(new DynamicDestinationResolver());
factory.setConcurrency("3-10");
factory.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
return factory;
}
要使用这个:
@JmsListener(destination = "queue.fifo",
containerFactory = "jmsListenerContainerFactory")
public void receiveCustomerStakeholderKyc(@Payload final Message<?> message) throws Exception {
}
当我使用它时。有些消息甚至没有出现在代码中。 JMS 不消费这些消息,这些消息被转移到 dead_queue。
Queues:
1. queue.fifo
Name: queue.fifo
Default Visibility Timeout: 30 seconds
Message Retention Period: 4 days
Maximum Message Size: 256 KB
Created: 2019-09-16 12:50:43 GMT+05:30
Receive Message Wait Time: 0 seconds
Last Updated: 2020-06-12 16:35:29 GMT+05:30
Messages Available (Visible): 0
Delivery Delay: 0 seconds
Messages in Flight (Not Visible): 0
Queue Type: FIFO
Messages Delayed: 0
Content-Based Deduplication: Enabled
2. queue_dead.fifo
Default Visibility Timeout: 30 seconds
Message Retention Period: 4 days
Maximum Message Size: 256 KB
Created: 2019-09-16 12:51:08 GMT+05:30
Receive Message Wait Time: 0 seconds
Last Updated: 2020-06-12 16:47:17 GMT+05:30
Messages Available (Visible): 5
Delivery Delay: 0 seconds
Messages in Flight (Not Visible): 0
Queue Type: FIFO Messages Delayed: 0
Content-Based Deduplication: Disabled
有什么我想念的
- 当我查看控制台时,它显示此时已收到消息,但在我的日志中未收到消息。
有没有办法启用 SQS 日志?
【问题讨论】:
-
因为它要去 DLQ 这意味着一些处理失败,启用日志并查看。
标签: spring amazon-web-services jms message-queue amazon-sqs