Я ищу несколько предложений здесь. Вариант использования - это сетевое устройство (например, маршрутизатор) с сетевыми операциями, выполняемыми через gRPC.
Допустим, есть "n" объекты модели, такие как маршрутизатор, интерфейсы, объекты конфигурации маршрутизации, такие как OSPF и т. Д. Каждая сетевая операция, например, в конечном счете, выполняется CRUD для одного или многих объектов модели.
Теперь, при определении этого через службу gRPC, кажется, есть 2 варианта:
Определите общие RPC gRPC, такие как "SET" и "GET". Параметр будет список объектов и операций. Как SET ((маршрутизатор, обновление), (интерфейс, обновление) ..
Определите очень специфические RPC. Как и "setInterfaceProperty_x", "createOSPFInstance" .. И таких RPC может быть много.
С помощью # 2 мы создаем интеллект приложения в самих RPC. Каждой новой функции могут потребоваться новые RPC из этой службы.
С # 1 средства RPC являются средством, но интеллект находится в приложении, которое использует RPC в контексте. Список RPC будет очень небольшим и не изменится со временем.
Какой предпочтительный подход? Общие RPC (и их очень мало) или имеют десятки (или более) RPC, управляемых операциями? Я вижу, что некоторые проекты с открытым исходным кодом, такие как P4Runtime, используют подход № 1.
Спасибо за ваше время. Я могу предоставить больше информации, если требуется.