Как избежать раздвоения мозга, голосов и кворума [закрыто]

Предположим, у вас есть n процессов, n & gt; 2. Вы хотите договориться между собой, что нужно быть активным. Поэтому им нужно проголосовать друг за друга, чтобы определить, кто из них активен.

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

Мыmust никогда не имейте двух активных одновременно, поэтому, если они не могут быть уверены, лучше, чтобы никто не был активным. (Т.е. мы хотим избежать раскола мозга)

Единственный доступный механизм связи между ними - паб-суб-обмен сообщениями (не точка-точка).

Доступна одна или несколько баз данных, но ни одна база данных не должна быть единой точкой отказа. То есть. было бы очень неприятно, если бы все процессы были доступны для работы, и они были лишены возможности потерять одну базу данных.

Дизайн? Какие сообщения нужно публиковать?

Ответы на вопрос(3)

Ваш ответ на вопрос