Я только что закончил работу с плотом и начинаю работу над реализацией. Однако я понял, что немного запутался в одной важной детали. Как узлы рафта «знают» о своих коллегах? Я не встречал упоминания об этом в документе, поэтому предполагаю, что это зависит от конкретной реализации, но, на мой взгляд, это приводит к ряду вопросов:
- Статичен ли размер кластера плотов? Поскольку каждый узел должен знать обо всех других узлах (для отправки RPC), как новый узел присоединится к существующему кластеру? Как существующие узлы узнают об этом новом узле?
- Должно ли при инициализации расположение каждого узла в сети быть жестко запрограммировано в каждом другом узле? Как узел узнает, куда отправлять свои RPC?
Был бы очень признателен за помощь в этом. Мне действительно интересно полностью понять raft, и я рад возможности реализовать его, но я немного заблудился в этой части системной архитектуры. Мне не кажется правильным, что узлы должны быть статически настроены с жестко заданными сетевыми местоположениями, поскольку в реальном мире я определенно мог предвидеть необходимость добавления нового узла в существующий кластер. Спасибо!