Восстановление подключения RPC весной - PullRequest
1 голос
/ 25 июня 2019

Я использую сервер Spring, который подключается к узлу Corda через RPC, в настоящее время я инициализирую соединение, когда мы инициализируем сервер. Какова лучшая практика с точки зрения возможности переподключения к rpc, если узел rpc выходит из строя? мне просто опрашивать и проверять, отключен ли rpc?

1 Ответ

1 голос
/ 25 июня 2019

Это в некоторой степени обсуждается в разделе Переподключение клиентов RPC в документации по взаимодействию с узлом.

В текущей версии Corda RPC-соединение и все Наблюдаемые объекты, созданные клиентом, будут просто генерировать исключения и умирает, когда узел или TCP-соединение становятся недоступными.

Ответственность за устранение этих ошибок и повторное подключение лежит на клиенте. как только узел снова запустится. Запуск команд RPC против остановленного узел просто выбросит исключения. Ранее созданные Observables будут не генерировать никаких событий после перезапуска узла. Клиент должен явно повторите команду и подпишитесь, чтобы получать больше событий.

RPC, которые имеют побочный эффект, такой как пусковые потоки, могут иметь выполняется на узле, даже если возвращаемое значение не получено клиент. Единственный способ подтвердить это выполнить запрос бизнес-уровня и повторите попытку соответственно. Пример runFlowWithLogicalRetry помогает с это.

В случае, если пользователям требуется такая функциональность для написания эластичного RPC клиент, у нас есть образец, который демонстрирует, как это может быть реализовано и также тщательный тест, который демонстрирует, что он работает как ожидалось.

В настоящее время существует мертвая ссылка на ReconnectingCordaRPCOPs, которая была перемещена сюда

...