Publish: maine coon wears a bowler
Подписчик выведет на экран все, что он запросил и получил:
Subscribe: persian wears a stovepipe
Subscribe: maine coon wears a tam-o-shanter
Subscribe: maine coon wears a stovepipe
Subscribe: persian wears a stovepipe
Subscribe: maine coon wears a bowler
Другие инструменты для организации подхода
публикации-подписки
Вам могут пригодиться следующие ссылки.
RabbitMQ. Это широко известный брокер сообщений, Python API для него на-
зывается pika. Обратитесь к документации для pika (http://pika.readthedocs.org/)
и обучению работе с механизмом публикации — подписки (http://bit.ly/pub-sub-tut).
pypi.python.org. В правом верхнем углу окна поиска введите pubsub, чтобы най-
ти пакеты для Python вроде pypubsub (http://pubsub.sourceforge.net/).
322
Глава 11. Конкуренция и сети
Pubsubhubbub. Этот протокол со сладкозвучным именем позволяет подписчи-
кам зарегистрировать функции обратного вызова для публикаторов (https://
code.google.com/p/pubsubhubbub/).
TCP/IP
Мы бродили по дому работы с сетями, принимая за данность, что все, что находит-
ся в подвале, работает корректно. Теперь заглянем в подвал и посмотрим на про-
вода и трубы, благодаря которым наверху все работает.
Интернет основан на правилах, по которым создаются соединения, идет обмен
данными, закрываются соединения, обрабатывается истечение срока действия и т. д.
Эти правила называются протоколами, и они упорядочены в слои. Цель существо-
вания слоев заключается в том, чтобы дать путь инновациям и альтернативным
способам выполнения задач. Вы можете делать все что угодно в рамках одного слоя
до тех пор, пока следуете соглашениям, связанным с работой с более низкими
и более высокими слоями.
Самый нижний слой управляет такими аспектами, как электрические сигналы,
каждый более высокий слой базируется на нижних. Примерно в середине находит-
ся свой IP (Internet Protocol, интернет-протокол), на котором определяется, как
адресуются локации сети и как перемещаются пакеты (фрагменты) данных. На слое,
который располагается выше его, два протокола описывают, как перемещать байты
между локациями.
UDP (User Datagram Protocol, протокол датаграмм пользователя). Использу-
ется для обмена небольшим объемом данных. Датаграмма — это небольшое
сообщение, которое отправляется целиком.
TCP (Transmission Control Protocol, протокол управления передачей). Этот
протокол используется для более длинных соединений. С его помощью отправ-
ляются потоки байтов, он гарантирует, что они придут по порядку и без дупли-
каций.
Для сообщений, отправляемых по протоколу UDP, подтверждение не требует-
ся, поэтому вы никогда не можете быть уверены в том, что они придут в точку
назначения. Если бы вы хотели рассказать шутку по протоколу UDP, это выгля-
дело бы так:
Вот шутка про UDP. Дошло?