服务结构状态配置



我正在设计一个系统,该系统将有数亿个状态参与者,我如何控制状态保存在哪里?

我想将集群配置为由具有连接存储的虚拟机组成,以容纳将要保存的大量参与者状态,然后将StateManager配置为使用虚拟机的连接磁盘。

谢谢你抽出时间。

  1. 修改ARM模板,该模板为集群节点提供每个实例一个额外的托管磁盘:
"dataDisks": [
{
"diskSizeGB": 128,
"lun": 0,
"createOption": "Empty",
"caching": "ReadOnly",
"managedDisk": {
"storageAccountType": "Premium_LRS"
}
}
]
  1. 使用PowerShell初始化磁盘:
Get-Disk |
Where PartitionStyle -eq 'Raw' |
Select-Object -First 1 |
Initialize-Disk -PartitionStyle MBR -PassThru |
New-Partition -DriveLetter F -UseMaximumSize |
Format-Volume -FileSystem NTFS -NewFileSystemLabel "Data" -Confirm:$false
  1. 更新集群配置以将状态存储在其他位置。(请记住,这会更改每个服务的状态存储位置,而不仅仅是您的ActorService。(:
"settings": {
...
"nodeTypeRef": "[parameters('vmNodeType0Name')]",
"dataPath": "F:\\SvcFab",
"durabilityLevel": "Silver",
...
},

这个github回购似乎描述了您的需求。

  1. 要更改单个服务的状态管理器,需要自定义IActorStateManagerIActorStateProvider的实现,并在调用中传递它们以注册Actor类型:ActorRuntime.RegisterActorAsync

相关内容

  • 没有找到相关文章

最新更新