【发布时间】:2017-06-09 22:58:32
【问题描述】:
假设我有一个使用 Hazelcast 进行成员之间通信的集群,并且我想提供一个任务执行服务。一些集群成员是任务源(针对服务请求进行了优化),而其他成员是任务接收器(针对长时间运行的计算进行了优化)。如何配置任务源以访问服务而不允许它们接受和运行任务?
类似的问题(例如Can a Hazelcast ExecutorService be created to execute on a subset of the cluster?)已经得到了使用executeOnMembers等建议的回答,但是这种方法需要我在ExecutorService外部实现公平的负载平衡和任务分配,这违背了使用该服务的目的。
我理想的解决方案是使用pool-size 或0 配置任务源成员,但这是被验证器拒绝的无效配置。
【问题讨论】:
-
github.com/hazelcast/hazelcast/issues/532 似乎正是我想要的,但这是一个悬而未决的问题
-
@Stephan 我认为它们没有直接关系。这张票是/更多的是要影响数据分布。您可以使用 lite 成员设置停用成员上的存储,并使用 MemberSelector 选择要执行的 lite 成员(请参阅下面的完整答案:-))
标签: java distributed-computing executorservice hazelcast