具有以下不同项目的net core解决方案,
- API - 包含客户端应用程序正在调用的控制器
- 应用程序 - 具有业务逻辑
- 数据 - DbContext
- 域 - 具有数据项目中表的类
- 基础设施 - 生成令牌
我的问题是当我进入生产环境时,是否可以将 API 放在不同的服务器中,而将应用程序、数据、域、基础设施放在不同的服务器中?这是最佳做法吗?
任何帮助、想法、建议都将受到高度赞赏。
谢谢
具有以下不同项目的net core解决方案,
我的问题是当我进入生产环境时,是否可以将 API 放在不同的服务器中,而将应用程序、数据、域、基础设施放在不同的服务器中?这是最佳做法吗?
任何帮助、想法、建议都将受到高度赞赏。
谢谢
第一个问题的答案是有可能。理解这一点的一种方法是认识到 UI 和 API 之间的接口类似于 API 和后端之间的建议接口。就像 UI 通常与 API 位于不同的服务器上一样,API 可能与关联的业务逻辑位于不同的服务器上。只要在其范围内理解和使用每个组件之间的接口,生产应用程序的不同部分就没有理由不能位于不同的服务器上。这背后的原则通常被称为“关注点分离”。
这个问题的第二部分类似于应该首选微服务还是单体架构之间的问题。在微服务架构中,每个服务都应该很好地处理一个操作,其他组件应该通过明确定义的接口与之通信。这导致代码和部署更易于遵循和扩展,代价是标准化和维护接口以及与网络通信相关的问题所涉及的工作。
如果有一种架构在所有方面都是最好的,那么每个人都会使用它,并且不需要进一步评估。话虽如此,在我看来,分区服务的好处与独特服务的数量成正比。因此,仅拆分为 API 和后端服务器是不值得的。随着“分离的关注点”数量的增加(例如:许多后端组件),好处开始变得更有价值。
将您的后端进一步划分为许多不同的服务可能是值得的。例如:应用业务逻辑可以分为Type1、Type2、Type3。