我有一个集群系统,它有许多不同的实体类型,具有不同的内存和计算复杂性特征,并且希望在我的钝化策略中使用
active-entity-limit
为每种类型使用不同的限制,因为有些可以轻松支持每个分片区域数千个实体,而其他的应该只支持 100s。
我找不到任何方法可以使用现有的 PassivationStrategySettings 来执行此操作,也找不到任何有关如何以编程方式定义自己的钝化策略的文档。是否有地方可以挂钩 ShardRegion 来实现此类行为?
您可以使用
ClusterShardingSettings.PassivationStrategySettings.apply(Config)
从任意配置加载钝化配置,例如使用 application.conf
中的某些内容从您在 system.settings.config.getConfig("my-app.passivation-for-a")
中定义的某个路径中获取,然后使用 将其设置在集群分片设置上ClusterShardingSettings#withPassivationStrategy
。