[#] Гейтование
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, которая гейтуется и с другими сетями.