[#]
Гейтование
51t(lenina,1) — All
2014-04-06 05:45:54
Допустим, вы уже можете создавать сообщения, будь то своя станция или php-модуль для форума. Пришла пора гейтоваться. :)
> === Гейтование и синхронизация
В эхе X на станции Y создано сообщение. Чтобы получить это сообщение, нужно быть:
* подписанным на эху X у кого-нибудь из аплинков
и
* получать эту эху у станции Y
* или получать эту эху у кого-нибудь, кто получает эту эху со станции Y
* или у кого-нибудь, кто получает эту эху со станции, который получает эту эху со станции Y
Если где-то в этой схеме синхронизация односторонняя или отсутствующая (то есть, один из ваших аплинков не получает
эту эху), то это письмо до вас не дойдёт.
Аналогично с письмами вашей станции: роутинг в одну сторону и роутинг в другую - это совершенно разные вещи, поэтому
ваши письма будут там, где их с вас получают + там, где их с вас получают ваши аплинки + их аплинки и так далее.
> === Топология Валенок
Схема простая, как валенок. Эта схема использовалась и до сих пор используется
для гейтования двух первых узлов.
Выбирается список эх. Станция A натравливает фетчер на станцию B и прописывает в cron.
Станция B натравливает фетчер на станцию A и прописывает в cron. Всё.
> === Топология Хоббит
Некая станция-станции только принимают соединения. И кто-то, обзванивая их, делает им pull/push. Туда и обратно.
> === Гейт-посредник
Вместо того, чтобы обзваниваться напрямую, станции выбирают некий транзитный узел/узлы, будь
то хоть простой php-скрипт на бесплатном хостинге.
Т.е., есть такая точка/точки, через которые все обмениваются. В самом простом случае, это
точка, на которую пушат/пулят все участники сети. Либо каждый пушит на две точки, и пуллит
их обе. Либо каждый пушит на одну из двух, а эти две точки как-нибудь обмениваются между собой.
> === Пример: Письмо Романа
Олёна находится на станции voyevoda. Она любит Романа и хочет послать ему сообщение в эху
vvv.olena.14. Станция voyevoda гейтуется только со станцией tsar, через некий гейт pochta.
tsar пушит на voyevoda напрямую, а забирает через pochta. voyevoda пушит на pochta,
туда же пушат остальные посадские. он никого не пулит, только получает напрямую.
Роман находится на станции bastrukov, которая гейтуется с некоторыми узлами в своей локалке,
двухсторонняя синхронизация налажена bastrukov-don и bastrukov-volga, где свой набор эх,
и своя сеть.
Олёна все пишет и пишет письма, и они остаются на станции pochta.
Ребята из сети Бастрюкова уговаривают станцию tsar гейтоваться. Прописывают все эхи,
а благоразумный Роман создаёт и vvv.olena.14, да пропихивает её в список обмена. И пишет туда письмо.
Письмо попадает на станцию tsar. Теперь у нас есть две эхи vvv.olena.14
Одна ходит по маршруту voyevoda -> pochta. Другая по маршруту сети Романа, включающей
обмены bas <-> don, bas <-> vol и bas <-> tsar.
Далее Роман просит станцию tsar добавить эту эху в список пуша на voyevoda.
Теперь письмо Романа есть на всех станциях сети, включая voyevoda и pochta. Олёна видит письма Романа и радуется.
Теперь Роман просит станцию tsar добавить эту эху в список загрузок со станции pochta.
Теперь окончательно всё, и все 1932 письма vvv.olena.14 видны по всем станциям сети.
Роман забирает Олёну со станции с таким дурацким роутингом, заводит свою станцию, и даёт пойнта.
А станция voyevoda в результате заменяется новым оператором, и схема заметно упрощается,
все со всеми начинают обмениваться через pochta, которая гейтуется и с другими сетями.