我有一个现有的 Web API 2 项目,我希望将其转移到 Azure Service Fabric。我计划在 Fabric 中创建一个无状态服务,详细信息 here (主要是因为我目前不了解参与者/服务!)并移动 API。
我的 API 使用 Entity Framework 作为后端,并使用 OWIN 构建内置个人帐户。
在移动服务时我需要考虑什么(我主要认为数据库和身份验证可能是一个问题),还是只是将 Service Fabric 层放在上面?
谢谢
编辑
我对此有更多的思考,并且还有更多问题(基于@Mihail 的评论)!
因此,我将拥有许多无状态服务(因此我将拆分我的 Web API 项目),这些服务将通过 Web API 项目公开(基于 this)
所以有两个问题:
我需要根据个人帐户对用户进行身份验证。我认为我应该在 Web API 前端执行此操作,这样只有经过身份验证的用户才能访问 Fabric 服务,但这意味着 API 可以访问数据库,而不再只是传递。这个可以吗? API 是否应该调用微服务进行身份验证,然后调用它所需的服务,或者这是否太过分了?
- Entity Framework 。如果我有许多服务(和 API 前端)访问同一个数据库,我是否需要担心并发连接/锁定,或者 Entity Framework 会为我处理这个问题吗?
最佳答案
正如 Mihail 所说,围绕 Entity Framework 和身份验证的问题不应该成为问题,或者至少不是 Service Fabric 特定的问题。
需要考虑的一件事是,如果您唯一拥有的只是一个简单的 API,那么 Service Fabric 是否适合这里,或者 Azure API app 是否更适合您。
如果您使用 Service Fabric,则必须至少拥有 5 个虚拟机,因此您需要考虑您的应用是否需要 5 个虚拟机,或者这是否会造成过度杀伤力。另请记住,您需要管理这些虚拟机 - 您无法获得 PaaS 解决方案所提供的魔力。您还必须处理 API 应用程序中开箱即用的某些事务,例如自动扩展、身份验证、速率限制、与 SaaS 应用程序集成等。可能值得看看这个 SO question Service Fabric 和应用服务之间的比较。
关于azure - 将 Web API 迁移到 Fabric 时的注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36040061/