计算在 Spring Boot 中成功/失败响应触发 API 的次数的最佳方法是什么。
我的想法是在应用程序启动和调用 api 时使用 post 构造来启动一个新线程,然后为每个新的唯一请求使用计数器服务来计算该特定请求触发了多少 api以及其中有多少成功或失败。
如果你们有任何新方法,请推荐一些新方法。
我有一个使用 spring-kafka 配置的 Springboot 应用程序,我想在其中处理收听主题时可能发生的各种错误。如果由于反序列化或任何其他异常而丢失/无法使用任何消息,则会重试 2 次,之后该消息应记录到错误文件中。我有两种可以遵循的方法:-
第一种方法(使用 SeekToCurrentErrorHandler 和 DeadLetterPublishingRecoverer):-
@Autowired
KafkaTemplate<String,Object> template;
@Bean(name = "kafkaSourceProvider")
public ConcurrentKafkaListenerContainerFactory<K, V> consumerFactory() {
Map<String, Object> config = appProperties.getSource()
.getProperties();
ConcurrentKafkaListenerContainerFactory<K, V> factory =
new ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(new DefaultKafkaConsumerFactory<>(config));
DeadLetterPublishingRecoverer recoverer = new DeadLetterPublishingRecoverer(template,
(r, e) -> {
if (e instanceof FooException) {
return new TopicPartition(r.topic() + ".DLT", r.partition());
}
});
ErrorHandler errorHandler = new SeekToCurrentErrorHandler(recoverer, new FixedBackOff(0L, 2L));
factory.setErrorHandler(errorHandler);
return factory;
}
Run Code Online (Sandbox Code Playgroud)
但为此我们需要添加主题(一个新的 .DLT 主题),然后我们可以将其记录到文件中。
@Bean
public KafkaAdmin admin() {
Map<String, Object> …Run Code Online (Sandbox Code Playgroud)