java - 使用消息通道进行 Pub/Sub Spring 测试
问题描述
我有一个 spring 应用程序,它从 pub/sub 订阅中提取消息并记录它们。我已经尝试寻找测试方法,例如测试消息队列容量并确保 inboundChannelAdapter 将消息放在正确的通道上,但我并不是很成功。
有谁知道一些测试弹簧发布/订阅消息通道的方法?
@Bean
public MessageChannel inputMessageQueueChannel() {
return new QueueChannel(50);
}
@Bean
public PubSubInboundChannelAdapter inboundChannelAdapter(
@Qualifier("inputMessageQueueChannel") MessageChannel messageChannel,
PubSubTemplate pubSubTemplate) {
PubSubInboundChannelAdapter adapter =
new PubSubInboundChannelAdapter(pubSubTemplate,'sub-one');
adapter.setOutputChannel(messageChannel);
adapter.setAckMode(AckMode.MANUAL);
adapter.setPayloadType(String.class);
return adapter;
}
@ServiceActivator(inputChannel = "inputMessageQueueChannel")
public void messageReceiver(
String payload,
@Header(GcpPubSubHeaders.ORIGINAL_MESSAGE) BasicAcknowledgeablePubsubMessage message) {
log.info("Payload: " + payload);
message.ack();
}
解决方案
推荐阅读
- sqoop - Sqoop 导入按列拆分,不同的数据库拆分该数据
- javascript - 在 2 个单独的数组上执行相同的过滤器和映射功能
- c# - 在 ASP.NET Web API 中禁用模型验证 [必需]
- reactjs - 将发送目标与 OnClick 事件一起反应
- string - String.equals(StringBuilder) 和 StringBuilder.equals(String) 混淆
- sql - 基于单个计数值从联接表中排除结果
- csv - 复杂邮件合并(CSV 到 Word、CSV 到 PDF 或其他)
- php - mkdir ("dir", 0777) 和 chmod ("dir", 077) 不工作
- tensorflow - 好奇如何在 Web 应用程序中使用一些基本的机器学习
- java - 如何用 java 中的新 API 替换 sun.util.caldender.ZoneInfo