Могу ли я вызывать одну и ту же функцию RPC на нескольких серверах одновременно? - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь найти какой-нибудь быстрый алгоритм межпроцессного взаимодействия. Одна из необходимых мне возможностей - это возможность посылать одну команду нескольким экземплярам приложения одновременно. В течение дня я пытался выяснить, могу ли я запустить много экземпляров одного и того же приложения (local-rpc-server-app) и вызвать RPC с одного клиента. Для этой цели я использую протокол ncalrpc.

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

1 Ответ

0 голосов
/ 07 сентября 2018

Да, вы можете использовать несколько клиентских потоков (каждый из которых выполняет отдельный серверный вызов) или изменить .acf и пометить вызов атрибутом [async]. Если вы идете по последнему маршруту, вы можете сделать несколько вызовов в одном потоке клиента. Обратите внимание, что асинхронный RPC более сложен, чем синхронный RPC, из-за необходимости иметь дело с завершением вызовов.

Выполнение вызовов к нескольким экземплярам сервера (даже локальным) также усложняется тем, что вам придется каким-то образом обнаруживать эти конечные точки, а функции пространства имен RPC (RpcNs *) больше не доступны в Windows Vista.

...