发布
社区首页 >问答首页 >异步回调API集成

异步回调API集成
EN

Stack Overflow用户
提问于 2021-06-15 06:05:37
回答 1查看 317关注 0票数 0

异步回调API集成

大家好,我们使用的是很少的外部系统API,我们使用HTTP调用对外部系统进行调用,并且它会立即以确认(但不是实际响应)进行响应。经过一段时间(~ 1分钟)外部系统的响应。在这个场景中,从我的服务到外部服务的系统是完全异步的。但是我想以同步的方式对我的客户机(service / system / SDK)做出响应。也就是说,在我的系统和我的客户端系统之间的这段时间内,连接将保持开放状态。

但是这个问题出现在微服务架构的场景中。当我的服务(或系统)调用外部服务(或系统)并获得响应时,对接实例将不同于我提出请求的位置。例:如果我从Node N1给外部服务打了个电话,并在Node N2上获得响应,那么它就不知道这个响应细节。这也使得系统业务逻辑与异步系统的复杂性紧密耦合。

向外请求: Client ->我的服务->外部服务

内向响应:客户端SDK <-我的服务<-外部服务

在这个场景和问题陈述中需要你的帮助。

谢谢你的帮助和支持。

EN

回答 1

Stack Overflow用户

发布于 2021-06-15 10:00:15

我能找到解决这个问题的三种方法:

  1. USING HAZELCAST缓存:当响应(从外部服务到我的服务的HTTPs调用)降落到我的服务上时,它可以在任何对接实例上着陆,它只会将其放入Hazelcast缓存中。发出此请求的实际节点将以一定的时间(~每秒)轮询Hazelcast。,并在针对同一请求id或事务id.

找到响应后进行响应。

  1. USING LB源IP散列:当响应(HTTPs调用从外部服务到我的服务)降落到我的服务LB上时,它将找到源IP的散列,并从请求的发源地找到正确的停靠实例。

  1. USING LB ALGO事务ID哈希:当响应(HTTPs调用从外部服务到我的服务)降落到我的服务LB上时,它将找到响应头中存在的事务ID的散列,并从请求的起始位置找到正确的停靠实例。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67980839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档