Программное обеспечение, используемое в сеточных вычислениях для обнаружения клиентов
В грид-вычислениях, какова де-факто практика программного обеспечения, используемая сервером для обнаружения клиентов и получения информации о них? Например, имя клиента, сколько памяти доступно, клиент выполняет задание (и сколько он выполнил) и т. Д. Или наоборот? Клиенты иногда сообщают эту информацию на сервер?
Будет ли это сделано через RPC? Или протокол обмена сообщениями (AMQP, STOMP)?
Мне также интересно, если этот же метод используется для отправки клиентам различных заданий / задач для завершения?
Я ищу, чтобы найти дружественное к Java решение, если это возможно.
Спасибо!
2 ответа
Фактического фактического стандарта для обнаружения сервера / узла / клиента в грид-вычислениях не существует, по крайней мере, нет универсального. Многие реализации используют обнаружение adhoc на основе многоадресной передачи UDP, другие используют обнаружение на основе реестра, как в архитектурах SOA. Есть много решений, но нет универсального стандарта.
Некоторые реализации Java-firendly, которые вы можете посмотреть: Unicore, JPPF, HTCondor, GridGain, Hadoop, Globus, Hazelcast
Zookeeper это то, что нужно учитывать. Возможно в сочетании с обменом сообщениями JMS, если ваши ресурсы распределены повсюду. Я использую Zookeeper с сервисом SystemInfo, работающим на каждом узле. Служба регистрирует системную информацию: память, количество процессоров, дисковое пространство и т. П. В znode в /Resources in Zookeeper.
Тогда любой сервис, которому нужен ресурс, может запросить ресурс / ресурсы, если ищет ресурс, чтобы что-то сделать, и проверить его спецификации, прежде чем распределять работу.
Java APi для Zookeeper довольно хорош. Мне легко работать.