Как организовать кеширование между сервисами в разных датацентрах?
Прошу меня строго не судить так как я дилетант в микросервисах да и не силен в построении архитектуры приложения в целом.
У меня три вопроса касаемо архитектуры:
Как организовать кэш между двумя датацентрами которая одна например находится в МСК а другая в СПБ, чтобы сервисы в обоих датацентрах стучались в общий кэш ? Если поставить Hazelcast между ДЦ то по моему мнению (поправьте пожалуйста если ошибаюсь) доступ в кэш будет не таким быстрым, время уйдет нас сеть. Или в каждом ДЦ сделать свой КЭШ а синхронизацию между ними сделать через очередь ?

Как организовать авторизацию в микросервисном приложении ? Моя архитектура вызывает у меня некоторые сомнения. При авторизации в сервисе Authorization я кладу в общий кэш(для всех сервисов) токен и объект сессии, и при запросе клиента через APIGetway, например в сервис заказов, внутри сервиса заказов для проверки аутентификации я беру токен клиента и смотрю есть ли в кеше объект сессии по данному токену. Если есть то беру сессию и делаю необходимые операции с сессией. Если нет то кидаю исключение. Что скажете по поводу такой организации авторизации и аутентификации в приложении между сервисами ? Если есть вариант получше то буду рад узнать как правильно это все делать.
- Допускается ли взаимодействие между сервисами внтури системы ? То есть можно ли из одного сервиса вызывать другой или в идеале сервисы не должны знать друг о друге ? Я планировал все обращения к сервисам сдеалть через APIGetway то есть исключил возможность сервисам вызывать друг друга, но со временем понимаю что так не получится, тоесть возникла необходимость взаимодействии. Если допустить то как лучше сделать: через REST или через mq+events ?
