java - RabbitMQ - 收到后删除消息
问题描述
我有一个使用 RabbitMQ 的 Spring Boot 应用程序。我可以成功地将消息发送到队列。我还可以检索消息。但是,当我检索它们时,消息不会从队列中删除。这导致我的接收不断地一遍又一遍地收到相同的消息列表。
问题
收到消息后可以删除吗?
代码
接收者@Component
public class RabbitMQReceiver {
@Autowired
private PhotoStatusProcessorService photoStatusProcessorService;
@RabbitListener(queues = "${rabbitmq.queuename}")
public void receive(UUID in) {
System.out.println("Received RabbitMQ msg = " + in);
photoStatusProcessorService.processPhotoForId(in);
}
}
配置
@Configuration
public class RabbitMQConfig {
@Value("${rabbitmq.queuename}")
String queueName;
// @Value("${rabbitmq.exchangename}")
// String exchange;
//
// @Value("${rabbitmq.routingkeyname}")
// String routingkey;
@Bean
Queue queue() {
return new Queue(queueName, false);
}
// @Bean
// DirectExchange exchange() {
// return new DirectExchange(exchange);
// }
//
// @Bean
// Binding binding(Queue queue, DirectExchange exchange) {
// return BindingBuilder.bind(queue).to(exchange).with(routingkey);
// }
@Profile("receiver")
@Bean
public RabbitMQReceiver receiver() {
return new RabbitMQReceiver();
}
}
应用程序属性
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=rabbitmq
spring.rabbitmq.password=****
rabbitmq.exchangename=photo-proccessor.exchange
rabbitmq.queuename=photo-proccessor
rabbitmq.routingkeyname=photo-proccessor.routingkey
YML 文件
rabbitmq:
container_name: rabbitmq
image: rabbitmq:3.7-management-alpine
ports:
- 15672:15672
- 5672:5672
environment:
RABBITMQ_ERLANG_COOKIE: "secretcookie"
RABBITMQ_DEFAULT_USER: ${AMQP_USERNAME}
RABBITMQ_DEFAULT_PASS: ${AMQP_PASSWORD}
输出
Received RabbitMQ msg = 9e24ec47-620b-4b93-833c-834a54d98ff8
Received RabbitMQ msg = 7e0e9aa6-f1d0-4154-abe1-617faa64a5fe
Received RabbitMQ msg = 3ade07c3-5f45-4aac-8054-0132bc85880b
Received RabbitMQ msg = 33645c35-a001-4c2c-a6f4-e3b96d3dc974
Received RabbitMQ msg = dcebdc77-6ddc-468e-978e-3714314a1abc
Received RabbitMQ msg = b7428adb-6356-4fd6-9ed1-c298886d95e8
Received RabbitMQ msg = 9e24ec47-620b-4b93-833c-834a54d98ff8
Received RabbitMQ msg = 7e0e9aa6-f1d0-4154-abe1-617faa64a5fe
Received RabbitMQ msg = 3ade07c3-5f45-4aac-8054-0132bc85880b
Received RabbitMQ msg = 33645c35-a001-4c2c-a6f4-e3b96d3dc974
Received RabbitMQ msg = dcebdc77-6ddc-468e-978e-3714314a1abc
Received RabbitMQ msg = b7428adb-6356-4fd6-9ed1-c298886d95e8
Received RabbitMQ msg = 9e24ec47-620b-4b93-833c-834a54d98ff8
Received RabbitMQ msg = 7e0e9aa6-f1d0-4154-abe1-617faa64a5fe
Received RabbitMQ msg = 3ade07c3-5f45-4aac-8054-0132bc85880b
Received RabbitMQ msg = 33645c35-a001-4c2c-a6f4-e3b96d3dc974
Received RabbitMQ msg = dcebdc77-6ddc-468e-978e-3714314a1abc
Received RabbitMQ msg = b7428adb-6356-4fd6-9ed1-c298886d95e8
Received RabbitMQ msg = 9e24ec47-620b-4b93-833c-834a54d98ff8
Received RabbitMQ msg = 7e0e9aa6-f1d0-4154-abe1-617faa64a5fe
Received RabbitMQ msg = 3ade07c3-5f45-4aac-8054-0132bc85880b
Received RabbitMQ msg = 33645c35-a001-4c2c-a6f4-e3b96d3dc974
Received RabbitMQ msg = dcebdc77-6ddc-468e-978e-3714314a1abc
..... forever
解决方案
推荐阅读
- redirect - 使用参数将根“/”重定向到 uri
- excel - 设置过滤器范围
- .htaccess - .htaccess,将整个文件夹(在根目录上)重定向到子域
- c++ - 将 c++ cmake-library build 发布到本地 repo 时出现 Gradle 错误
- logging - 使用多个触发策略时限制日志文件的总数 Log4j2
- django - 用户创建视图的 API 测试用例失败
- android - ListView 在按钮单击时填充多次
- android - 在颤振单元测试中访问 rootBundle
- reactjs - UseEffect 挂钩的 Jest 测试用例
- python - vscode无法打开Python交互,出现如下错误