【问题标题】:Stateful Web API service in service fabric in VS 2015 update 2VS 2015 更新 2 中服务结构中的有状态 Web API 服务
【发布时间】:2016-10-16 23:32:55
【问题描述】:

目前 VS 2015 Update 2 提供了一种简单的方法来创建基于 owin 的无状态 Web api 服务,使用为服务结构应用程序创建新的服务模板。只提供无状态 Web api 服务模板而不提供有状态 Web api 服务是否有原因?如果我愿意,我可以修改无状态 Web api 服务以从有状态 Web 服务派生吗?就这么简单吗?或者这种方法有什么问题吗?

【问题讨论】:

标签: visual-studio azure-service-fabric


【解决方案1】:

Web Api 旨在作为服务结构应用程序的外观/公共入口点。无状态使客户免于处理解析分区/地址和其他麻烦。

如果您愿意 - 您可以修改 web api 服务并使其有状态。也许从模板创建有状态服务会更容易,安装缺少的包(那个 web api 模板有),复制 OwinCommunicationListenerStartup,将它们连接到 CreateServiceReplicaListeners 覆盖,并将有效的服务端点添加到 ServiceManifest。 xml。 OwinCommunicationListener 将为每个副本提供唯一的地址。

【讨论】:

    【解决方案2】:

    是的,您当然可以将其修改为有状态的。 Web API 非常适合内部服务到服务的通信以及面向公众的 API。

    我们目前正在解决一个警告:无状态的 Web 主机使用 Kestrel,这给多个副本共享同一进程的有状态服务带来了一些困难,因为 Kestrel 不具有与 Kestrel 相同的端口共享功能基于 http.sys 的主机可以。我们正在开发一种解决方案,让 Kestrel 更容易用于有状态,但与此同时,您始终可以使用 WebListener 主机,它是基于 http.sys 的主机。

    如果您有兴趣,我正在开发一个具有 ASP.NET Core 1 有状态服务(以及其他很酷的东西)的项目,您可以在此处跟踪:https://github.com/vturecek/service-fabric-xray

    【讨论】:

    • 你能帮我理解为什么有状态的 Web API 甚至有意义吗?很可能它只是一个真正的有状态服务的通信层,因此 API 中没有任何真正的逻辑。
    • 我将像上面一样为我的项目创建有状态的 web api。请让我们知道任何限制
    猜你喜欢
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 2018-07-25
    • 2016-12-04
    • 1970-01-01
    • 2010-09-10
    • 2016-08-04
    相关资源
    最近更新 更多