Здравствуйте.
Мы все больше используем микросервисы, они имеют уникальные uri, выполняют атомарные операции и отдают JSON ответы, их проксирует и кеширует Nginx.
В этих бекенд микросервисах, часто появляются задачи для решения которых нужны ответы от других бекенд микросервисов, приходится внутри одного бекенд микросервиса делать http запросы к другим бекенд микросервисам, через Nginx, он нужен для балансировки и кеша, это все хорошо, но относительно медленно, несмотря на то что ответы получаем как правило из кеша Nginx.
Я думаю как это дело можно оптимизировать, первое что приходит в голову сделать в Nginx ещё один виртуал сервер, который будет использовать те же upstream и туже кеш зону, но без SSL, и других лишних опций, этот вирт сервер будет слушать юникс сокет, каждый микросервис (они все демоны) будет держать постоянный открытый конект к этому юникс сокету, и HTTP методом GET получать нужные кеши от других микросервисов.
Не уверен что этот велосипед оптимальный, возможно есть лучшие варианты?
Спасибо.
Мы все больше используем микросервисы, они имеют уникальные uri, выполняют атомарные операции и отдают JSON ответы, их проксирует и кеширует Nginx.
В этих бекенд микросервисах, часто появляются задачи для решения которых нужны ответы от других бекенд микросервисов, приходится внутри одного бекенд микросервиса делать http запросы к другим бекенд микросервисам, через Nginx, он нужен для балансировки и кеша, это все хорошо, но относительно медленно, несмотря на то что ответы получаем как правило из кеша Nginx.
Я думаю как это дело можно оптимизировать, первое что приходит в голову сделать в Nginx ещё один виртуал сервер, который будет использовать те же upstream и туже кеш зону, но без SSL, и других лишних опций, этот вирт сервер будет слушать юникс сокет, каждый микросервис (они все демоны) будет держать постоянный открытый конект к этому юникс сокету, и HTTP методом GET получать нужные кеши от других микросервисов.
Не уверен что этот велосипед оптимальный, возможно есть лучшие варианты?
Спасибо.