Closed
Milestone
Jan 10, 2022–Jan 31, 2022
Two raft nodes communication
Следующая после %Lonely raft node with peristency большая задача - научить две ноды общаться друг с другом.
Допущения:
- Топологию можно захардкодить - две ноды с
id=1
иid=2
. - Любыми правдами и неправдами избегаем честного джойна, id можно передать через аргументы командной строки.
- Пока никаких выборов-перевыборов.
Сценарий демо:
- Запустить два инстанса с явным указанием id (соответственно кворум = 2).
- Убедиться, что один из них успешно становится лидером.
- С фоловера отправить пропрозал.
- Убедиься, что на лидере он тоже применился.
План работ:
-
#16 (closed) Просунуть
RAFT_ID
через переменные окружения - #17 (closed) Реализовать хранимку для обмена рафт сообщениями
- #18 (closed) Реализовать пул соединений для отправки сообщений. Вынести отправку сообщений в отдельный файбер чтобы избежать йилдов в цикле рафта
-
Реализовать рпц для отправки пропозалов с фоловера (сам рафт позволяет это делать только с лидера).Это не правда. Рафт всё умеет сам.