Как синхронизировать контекст двух сервисов ASP.NET которые разворачивает клиент?
Как синхронизировать контекст двух сервисов ASP.NET которые разворачивает клиент. Суть в том чтобы достигнуть максимальной простоты для установки сервисов клиентом и не затруждать его развёртыванием инфраструктуры.
Например имеется 2 сервиса установленные в разных локальных сетях. Каждый сервис имеет свою базу данных. В ней есть база клиентов. В каждое из этих мест может прийти клиент и начать сессию. Как не дать начать сессию в двух местах одновременно?
Я вижу несколько вариантов:
1) Репликация баз данных в обои стороны (сложно и муторно)
2) Соединить два сервиса WS и пусть обмениваются данными.
Собственно сам вопрос состоит в том, как правильно реализовывать синхронизацию контекстов сервисов, без дополнительной инфраструктурной мишуры.
Если они в локальных сетях разных, то друг к другу не имеют доступа, получается так?
Тогда как вы будете это делать?
Почему не проще сделать 1 API, к которому будут обращаться все из всех сетей?
OwDafuq, возможно неправильно сформулировал вопрос, за это простите.
Имел в виду, как обойтись без облачного решения или настройки пользователем инфраструктуры (под этим подразумеваю, что пользователь который устанавливает софт не должен думать о том как ему это установить и что для этого необходимо. То есть просто установить ПО и нажать кнопочку соединить. Теперь два сервиса работают вместе)
Вводные данные такие:
Обе локальные сети имеют выход в интернет. Сервисы не должны быть зависимы ни от кого, кроме тех что необходимо синхронизировать.
Я предполагаю что можно использовать модель Master-Slave.
Kano, если промежуточная сущность может быть установлена вместе с одним и сервисов, то вполне можно.
Например как писал выше (про модель Master-Slave).
Необходимо отказаться от каких-то глобальных вещей в виде:
Распределённого кэша, шины сообщений. (Хотя вообще не факт, если есть мысли на этот повод, то пожалуйста выскажитесь)