Предположим, у меня есть кластер, который использует 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/issues/532, кажется, именно то, что я хочу, но это открытый вопрос. –
@Stephan Я не думаю, что они напрямую связаны. Билет был/больше связан с распределением данных. Вы можете деактивировать хранилище на члене с настройкой члена Lite и использовать MemberSelector для выбора элементов Lite для выполнения (см. Полный ответ ниже :-)) – noctarius