有没有可能用oData.net实现微服务

本文关键字:实现 服务 net oData 有可能 | 更新日期: 2023-09-27 18:28:55

我一直在阅读关于微服务架构的文章,由于互联网上可用的宝贵信息有限,我相信我从理论角度对其有了相当的理解。我理解,从高层来看,这种架构建议远离单一架构,拥有小型、独立的服务。然而,我在互联网上看到的所有例子都建议编写连接到ESB的松散耦合的窗口服务(在非MS实现的情况下是守护进程)。我知道,编写符合SRP的小型、松散耦合的web服务也符合微服务的要求。

也就是说,所有oData控制器(微服务?)都部署为一个整体的oData.Net服务显然违反了微服务架构模式。oData.net不是设计用来作为微服务的,这是一个正确的说法吗?如果你的答案是否定的,请举例说明。此外,请帮助我理解如何在组合中使用API网关模式。

有没有可能用oData.net实现微服务

ODATA确实适合微服务。然而,微型服务并不适合odata。我的意思是,实际上没有什么可以阻止您在微服务中公开OData。

然而,这样做通常会在微服务中公开一大组内部数据结构。这反过来又会增加不同服务之间的耦合。通过这样做,由于依赖关系,更改服务变得更加困难。

我个人的经验法则是从每个服务中公开尽可能小的API。我公开的数据结构与内部数据结构不同。它们可能是扁平的,也可能是不同内部实体中数据之间的联合。

我的理由是:如果要创建单独的服务,请尽可能地将它们分开。否则,你只是在构建一个在几个不同的windows服务中运行的整体。

oData作为一种公开微服务的方法是完全有效的;然而,公开显式表并不是微服务。所以我不完全同意杰高芬的观点。没有理由不能使用oData提供API。我同意JGauffin的观点,即API应该有一个较小的平面足迹,与源或目标的详细数据结构解耦。因此,API的转换取决于调用它的服务,但这意味着API的通用格式可以重复使用,只要业务需要,技术平台可以根据需要进行切换。