假设我有成员之间使用Hazelcast进行通信的集群,并且我想提供任务执行服务。某些集群成员是任务源(针对服务请求进行了优化),而另一些则是任务接收器(针对长时间运行的计算进行了优化)。我如何配置任务源以访问服务而不允许他们接受和运行任务?任务源如何在不接受任务的情况下访问Hazelcast ExecutorService?
类似的问题(例如Can a Hazelcast ExecutorService be created to execute on a subset of the cluster?)已经回答了诸如使用executeOnMembers
等建议,但这种方法要求我在ExecutorService外部实现公平的负载平衡和任务分配,这违背了使用服务的目的。
我的理想解决方案是使用pool-size
的0
来配置任务源成员,但这是验证器拒绝的无效配置。
https://github.com/hazelcast/hazelcast /问题/ 532似乎正是我想要的,但它是一个开放的问题 –
@Stephan我不认为他们是直接相关的。机票更多地是影响数据分配。您可以使用lite成员设置关闭成员的存储,并使用MemberSelector选择lite成员来执行(请参阅下面的完整答案:-)) – noctarius