首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是微服务调用自己还是调用内部函数?

是微服务调用自己还是调用内部函数?
EN

Stack Overflow用户
提问于 2022-01-19 14:02:47
回答 3查看 632关注 0票数 0

我正在为我的公司做一个旧的项目,我发现了一个奇怪的代码实践。

我们有多个API:

代码语言:javascript
复制
Account/CustomerInformations => Should return all information
Account/CustomerName => Return just name
Account/CustomerPhone => return just phone 

在函数CustomerInformations()的代码中,它们调用相同服务的其他API(微服务正在调用自己) (Account/CustomerName,Account/CustomerPhone),我觉得这很奇怪,因为我认为这不是一个很好的实践。

在询问架构师之后,他给出的原因是,这是通过负载均衡器并使调用更快的唯一原因。

我认为我们应该叫一个任务来做这项工作,而不是把微型服务叫做“自我”。

在这种情况下,最佳做法是什么?

EN

回答 3

Stack Overflow用户

发布于 2022-01-19 14:23:39

据我所知,当前不让事情发生在内部的理由是为了减轻潜在的性能问题。如果过去确实存在性能问题,那么将事情保持在内部可能不是可行的方法,而且实际上可能会导致服务性能的下降。

您可以选择将CustomerInformation拆分到它自己的微服务中,这实际上将调用CustomerName和CustomerPhone的方式大致相同,但不需要调用“本身”。

票数 0
EN

Stack Overflow用户

发布于 2022-01-19 14:30:46

这似乎是个不需要思考的问题。需要重构这个全拉函数,以便一次性从DB中提取所有数据,如果需要的话使用分页方法,而不是将其卸载到同一函数中的其他端点。每次该服务调用自己时,它都在浪费时间通过您的网络路径,增加延迟和增加成本。如果您的架构师认为“通过负载均衡器”会使其更快一些,那么他就是个白痴--这将使懒散和不实现这一错误变得更容易。

票数 0
EN

Stack Overflow用户

发布于 2022-01-20 18:17:17

桌子的结构怎么样?如果所有信息都驻留在同一个表中,那么最好使用内部API。可能有一些缺少的信息,您可能需要检查是否有某种方法引入LocalOptimization,或者已经在代码中使用这些方法来巧妙地识别是调用内部API还是调用外部API。假设只是小的代码重构,在这里应该会有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70771983

复制
相关文章

相似问题

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