如何解决如何处理基于事件的异步服务通信的超时?
我得到了Service1,Service2以及通过Kafka进行通信的这些服务。当我从Service1向Service2发送请求时,我需要确保在10秒内Service1必须收到Service2的响应。如果不是这样,我需要在Service1上将请求状态更新为“超时”。
我需要每秒发送数百个请求,并且我认为每个请求都不启动预定任务是一种有效的方法。还有其他方法可以处理超时情况吗?
void sendRequestToKafka(){
//Send request to Kafka
Runnable checkRequestCompleted = () -> {
//Check request has a response from database
//If not update request status to timeout
};
scheduledexecutorservice executorService= Executors.newScheduledThreadPool(4);
executorService.schedule(checkRequestCompleted,10,TimeUnit.SECONDS);
}
数据库架构;
id|request|response|status(started,timeout,completed)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。