Назад | Перейти на главную страницу

базы данных с несколькими мастерами в средах с низкой связностью

Я работаю над проектом, в котором много клиентских устройств распределено в удаленных средах, где потери связи являются частыми и ожидаемыми. Клиенты продолжают работать в автономном режиме, но когда эти устройства доступны, они получают команды от набора серверов в облаке и сообщают статус этим же серверам.

И клиентские устройства, и серверы поддерживают информацию о «балансе счета», и эта информация может изменяться на обоих концах. То есть балансы счетов могут быть изменены пользователями облачного интерфейса или локального клиентского интерфейса, и эти изменения могут быть внесены, даже когда клиент отключен.

Насколько я понимаю, это в некотором смысле установка базы данных с «несколькими мастерами». Мне интересно, какие существуют проекты, помогающие управлять такой топологией. Есть ли примеры подобных проектов? Или стоит подумать о других архитектурах?

Tungsten может быть настроен в асинхронной архитектуре с несколькими мастерами, которая, по сути, является тем, что вам нужно, и может использоваться с различными БД: https://code.google.com/p/tungsten-replicator/

Приложение можно настроить для использования локальной серверной части MySQL, использующей Tungsten, и оно будет синхронизироваться с другими серверами, когда оно будет в сети. В автономном режиме обновления будут стоять в очереди, пока снова не будут подключены к сети. Клиенты хотели бы быть подключены через VPN или аналогичный (например, туннель HTTPS / SSH).