У меня есть работа по реализации распределенной системы узлов (например, узлов p2p), каждый из этих узлов (позволяет A, B, C и D) выполнять определенные функции и должен взаимодействовать друг с другом для различных операций, таких как операции синхронизации и другие вещи, такие как узлы 15 А, взаимодействуют с группой из 5 узлов B, чтобы попасть в очередь наименее загруженного узла и получить номер токена, а затем ожидают, что C перенаправит их на свободный узел D и на.Разработка распределенной системы с использованием только C
Я немного потеряли о том, как я должен идти о дизайне:
Протокол, что я думал о является инкапсулировать-структуру типа операции и других вещей, которые будут отправлены. Кроме того, это делается с использованием схемы подтверждения, поэтому я могу быть уверен, что другая сторона получила сообщение.
Как перейти к распределенному аспекту взаимного исключения, поскольку у меня нет центрального сервера. Я предполагаю, что каждый узел реплицирует данные, но это звучит слишком дорого (не говоря уже о глупом).
Какова основная методология проектирования, применяемая при внедрении систем p2p, то есть, как я могу реализовать программу таким образом, чтобы она была заблокирована при получении, но также может отправлять дополнительные обновления et al и одновременно получать информацию от других о «состояние» всей системы.
Как обеспечить общий порядок запросов?
Кроме того, какие другие проблемы мне могут потребоваться, чтобы посмотреть/лице. Я также был бы признателен, если бы вы могли указать мне на некоторые хорошие онлайн-ресурсы по внедрению p2p и распределенных систем.
Спасибо!
Вы регистрируетесь для большой боли: почему бы не рассмотреть Erlang например? Это поможет вам решить множество проблем, например. сеть, распределенная, сериализация, маршалинг и т. д. – jldupont
Вы говорите «используя только C», но отмечаете вопрос как «c» и «C++». Который из них? –
и почему это сообщество wiki? знайте, что это снижает ваши шансы получить достойные ответы ... –