WedX - журнал о программировании и компьютерных науках

Стратегии вызова службы grpc из webapi в .net Core

У меня есть rest/web API в .Net Core, который я использую в качестве службы агрегации для вызова некоторых базовых gRPC services также в .Net core. Для клиента WEB API я создаю канал один раз как синглтон при запуске и внедряю его туда, где мне это нужно, используя внедрение зависимостей. Я также подумываю создать клиентов для grpc services при запуске, а затем внедрить их. Является ли создание канала и клиентов при запуске правильной стратегией или мне следует создавать и закрывать канал и клиентов при каждом запросе web API? Кроме того, если создание канала один раз является правильной стратегией, как я могу гарантировать, что канал будет закрыт при завершении работы... И служба web API/rest, и служба grpc services будут работать на Kubernetes Cluster в качестве док-контейнеров.

29.04.2018

Ответы:


1

Вы определенно не должны создавать новый канал для каждого звонка, который вы делаете. Каналы gRPC должны быть долговечными, и вы, как правило, получите наилучшую производительность и использование ресурсов, если создадите канал один раз, а затем продолжите вызывать последующие вызовы на этом канале. Точная область, в которой вы создаете канал, зависит от вашего приложения, но создание канала только один раз при запуске приложения является одним из возможных подходов (также обратите внимание, что соединения TCP/IP создаются лениво — новое соединение не будет создано до тех пор, пока вы начинаете первый вызов на этом канале).

08.05.2018
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]