Могу ли я запустить все экземпляры развернутой службы в Apache Ignite? - PullRequest
0 голосов
/ 11 марта 2019

Можно ли запустить все экземпляры развернутой службы в Apache Ignite? Служба возвращает некоторую информацию о состоянии каждого узла на основе содержимого хранилища SQL Ignite на узлах. Мне нужно, чтобы он выполнялся на каждом узле в группе, а не на случайном отдельном узле.

Я пытался использовать Broadcast () для вызова функции на всех соответствующих узлах, которая, в свою очередь, вызывает службу. Это работает, но есть ли более простой метод для достижения этой цели?

Кроме того, я не хотел бы использовать исключительно сетку Compute, поскольку для этого требуется, чтобы я перенес все зависимости в приведенной выше логике в вызывающую службу - по сути, вводил код целевой службы в вызывающую программу.

Я использую Apache Ignite для Net v2.7. Спасибо!

1 Ответ

1 голос
/ 18 марта 2019

Можно указать группу кластеров для служб IgniteServices # (ClusterGroup). Ниже приведен пример вызова службы на каждом узле сервера:

Collection<ClusterNode> nodes = ignite.cluster().forServers().nodes();
for (ClusterNode node : nodes) {
            ExampleService service = ignite.services(ignite.cluster().forNode(node)).service("service");
            service.call();
}
...