Azure Service Fabric - 每个节点有多个服务实例
Azure Service Fabric - more than one service instance per node
我有不使用任何端点的 Azure Service Fabric 无状态服务。它从队列中获取消息,对其进行处理并将结果保存到数据库。
我想在我的 2 个节点上部署 10 个实例。默认情况下,我有 -1 instancecount - 这意味着 2 个节点将有 2 个实例。我可以将 instancecount 指定为 1 或 2,这样就可以了,但是我不能设置 10 个实例,它会给我错误。
所以我决定创建我的应用程序类型的另一个实例。这是正确的解决方案吗?有没有更优雅的方法来做到这一点?
您目前可以选择以下几种方式:
- 多个应用程序实例(正如您所做的那样)。托管服务的多个应用程序。增加了复杂性,因为必须管理实例。
- 多项服务。一个应用程序,托管多个服务。与#1 相同的缺点。
- 服务中的多个分区(而不是一个
SingletonPartition
)。不利的是,这个数字是 'fixed'。更改需要重新部署该类型并有一些停机时间。
- 在一项服务中使用 multiple receivers。可能是一个不错的选择,因为它产生的开销最少,因为创建多个进程(#1、2 和 3)会产生一些开销。
(一个重要的问题是:你真的需要多个实例吗?)
更多信息here。
我有不使用任何端点的 Azure Service Fabric 无状态服务。它从队列中获取消息,对其进行处理并将结果保存到数据库。
我想在我的 2 个节点上部署 10 个实例。默认情况下,我有 -1 instancecount - 这意味着 2 个节点将有 2 个实例。我可以将 instancecount 指定为 1 或 2,这样就可以了,但是我不能设置 10 个实例,它会给我错误。
所以我决定创建我的应用程序类型的另一个实例。这是正确的解决方案吗?有没有更优雅的方法来做到这一点?
您目前可以选择以下几种方式:
- 多个应用程序实例(正如您所做的那样)。托管服务的多个应用程序。增加了复杂性,因为必须管理实例。
- 多项服务。一个应用程序,托管多个服务。与#1 相同的缺点。
- 服务中的多个分区(而不是一个
SingletonPartition
)。不利的是,这个数字是 'fixed'。更改需要重新部署该类型并有一些停机时间。 - 在一项服务中使用 multiple receivers。可能是一个不错的选择,因为它产生的开销最少,因为创建多个进程(#1、2 和 3)会产生一些开销。
(一个重要的问题是:你真的需要多个实例吗?)
更多信息here。