【问题标题】:Configuration and resource governance options for Azure Service Fabric stateless services?Azure Service Fabric 无状态服务的配置和资源治理选项?
【发布时间】:2019-04-16 20:01:06
【问题描述】:

我是使用 Service Fabric 的新手,我正在尝试找出一些设计选项。我有一个执行不同任务的类库。一些任务是资源密集型和长时间运行的(处理来自队列的消息),而另一些任务是短暂的并且必须是响应式的(处理来自用户的作业请求)。有大量缓存数据,因此共享进程是有意义的,并且应用程序是无状态的。我想确保长时间运行的任务不会饿死其他任务的资源,而且利用率很高。

  1. 是否可以在我的解决方案中创建一个无状态服务项目(引用我的类库)并部署多个共享同一进程的命名 StatelessService 实例,使用配置来区分这些实例执行的任务?有或没有多个 ServiceType(虽然它们似乎是每个项目一个,所以我假设这必须是一个 ServiceType)?

  2. 如果是这样,是否可以对这些服务实例应用不同的资源治理规则,以便为用户驱动的任务保留一些资源?到目前为止,我的印象是,当服务共享一个进程时这是不可能的。

【问题讨论】:

    标签: azure azure-service-fabric


    【解决方案1】:
    1. 默认shared process model 指定:

    上一节介绍了由 Service Fabric,称为共享进程模型。在这 模型,对于给定的应用程序,只有一个给定的副本 ServicePackage 在一个节点上被激活(它启动所有 其中包含的代码包)。 a 的所有服务的所有副本 给定的 ServiceType 被放置在注册的 CodePackage 中 服务类型。换句话说,所有服务的所有副本都在一个 给定 ServiceType 的节点共享同一个进程。

    can specify多种服务类型和多种代码包。

    ServiceTypes 声明 CodePackages 支持哪些服务类型 在这个清单中。当针对其中之一实例化服务时 服务类型,此清单中声明的​​所有代码包都是 通过运行他们的入口点来激活。产生的过程是 期望在运行时注册支持的服务类型。服务 类型在清单级别声明,而不是在代码包中声明 等级。所以当有多个代码包的时候,都是 每当系统查找任何已声明的 服务类型。

    1. 资源governance 在服务清单中配置,而不是在实例级别。

    【讨论】:

    • 那么字里行间,一个Application中两个不同的ServiceType不能共享一个进程?
    • 你几乎看不到它,但是他们可以。添加了要回答的信息。
    猜你喜欢
    • 2017-02-18
    • 2017-06-22
    • 1970-01-01
    • 2021-02-01
    • 2016-11-16
    • 2017-11-11
    • 2021-08-20
    • 2016-08-07
    • 2017-05-25
    相关资源
    最近更新 更多