Всё что требуется для RabbitMQ
Copyright © 2020 Packt Publishing
|
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая публикация на английском языке: Апрель 2014
Второе издание на английском языке: Август 2020
Ссылка на продукт: 1070820
Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением случаев кратких цитат, встроенных в критические статьи и обзоры.
При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.
Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов, упомянутых в данной книге для надлежащего использования капиталов. Тем не менее, Packt Publishing не может гарантировать точность этой информации.
Опубликовано Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK
ISBN 978-1-78913-166-6
2020-08-26
- Авторы
- Ловайса Йохансон
- Дэйвид Доссо
- Редактор ввода в эксплуатацию
- Кунал Чаудхари
- Редактор приобретения
- Адайти Гур
- Редактор разработки содержимого
- Натанья Диас
- Главный редактор
- Айаан Хоуда
- Технический редактор
- Уткарша С. Кэйдам
- Литературный редактор
- Safis Editing
- Координатор проекта
- Айшвэйря Моухан
- Корректор
- Safis Editing
- Составитель указателя
- Тиджал Дэйрувэйл Сони
- Технолог
- Эйлишон Мендонка
Ловайса Йохансон ежедневно работала с RabbitMQ на протяжении многих лет. Через CloudAMQP её компания 84codes предлагает управление кластерами RabbitMQ. Обладая 50 000+ запущенными экземплярами, они рассматриваются как самый большой поставщик в мире RabbitMQ в качестве службы. Ловайса искушённый разработчик со степенью магистра вычислительных наук и инженерии. Благодаря своей работе она продолжает писать наиболее популярное и широко распространённое образовательное содержание на тему RabbitMQ и иногда делится этими знаниями в качестве докладчика на различных конференциях.
Основные идеи этой книги основаны на передовых навыках и опыте команды 84code, основанной в Швеции в 2012 году. Команда 84codes обладает большим опытом в тех преимуществах, проблемах и возможностях, которые предоставляют архитектуры очередей сообщений. Мы стремимся предоставить разработчикам простую облачную инфраструктуру, благодаря которой и появилась данная книга. Особая благодарность экспертам, которые предоставили ценные знания, включая Антона Далгрена, Даниэля Марклунда, Элина Винка, Эндрю Эванса и Анджелу Олсон.
Дэйвид Доссо работал инженером- программистом и архитектором на протяжении более 18 лет. Он применял RabbitMQ начиная с 2009 во множестве различных контекстов. Он выступает основным участником в AMQP транспорте Mule. Он сосредоточен на построении распределённых и масштабируемых приложений стороны сервера для JVM и Erlang VM. Он участник IEEE, Computer Society и AOPA, также держатель диплома Production Systems Engineering ESSTIN.
Он чемпион Mule и Наиболее ценный блоггер DZone. Он участвует во многих проектах с открытым исходным кодом и любит помогать людям в Stack Overflow. Он также выступает судьёй ежегодного конкурса по программному обеспечению Jolt Awards.
Гектор Вейга Ортиз является инженером программного обеспечения, специализирующийся на приложениях данных реального масштаба времени. В последнее время он сосредоточил свою работу на различных облачных технологиях, таких как AWS и Kubernetes, в качестве разработки и запуска масштабируемых, эластичных и высоко производительных систем, которые способны обрабатывать данные реального масштаба времени с большим объёмом. Он обладает степенью магистра в Телекоммуникационной инженерии Политехнического университета Мадрида, а также степенью магистра по информационным технологиям и управлению Иллинойсского технологического института. В настоящее время он работает в HERE Technologies, где он разрабатывает масштабируемые приложения для обслуживания обмена данными в реальном масштабе времени по всему миру. Гектор также технический рецензент RabbitMQ Cookbook и был автором Akka Cookbook, причём обе были изданы Packt Publishing.
RabbitMQ это брокер сообщений, предоставляющий некую коммуникационную структуру между компонентами и службами. Благодаря AMQP (Advanced Message Queuing Protocol) и всем доступным клиентским библиотекам RabitMQ, большинство основных языков программирования и служб способны совместно и бесшовно работать, причём неким асинхронным образом.
Эта книга вскрывает мощные возможности RabbitMQ погружаясь в основные посредством путешествия пользователя Complete Car (CC), вымышленной компании диспетчерезации такси с требованиями пользователя из реальной жизни.
Если вы профессиональный корпоративный разработчик или кто- то кто просто кодирует для своего удовольствия, Всё что нужно для RabbitMQ это ценный ресурс архитектуры очередей сообщений с открытым исходным кодом. Даже те, кто уже знаком с микрослужбами и обменом сообщений, обнаружат пользу при чтении этой книги для некого изучения продвигаясь вперёд с наилучшими практиками и действенными ресурсами. Эта книга придаст вам ускорение, необходимое для начала создания новых приложений или миграции имеющихся монолитных решений на архитектуру микрослужб.
Глава 1. Как оживает Rabbit, некое введение в RabbitMQ, как начинать и преимущества очередей сообщений. Эта глава далее проинструктирует вас как установить и настроить RabbitMQ и подготовит для продвижения вперёд в разработке приложений.
Глава 2. Создание приложения Такси, обсуждает создание простого приложения заказа такси при помощи RabbitMQ. К концу этой главы, как ожидается, вы получите представление того как подключаться к RabbitMQ, публиковать прямые и тематические обмены, а также потреблять сообщения из очередей. Эта глава также поясняет подтверждения и отрицательные подтверждения (acks и nacks - acknowledgments and negative acknowledgments) сообщений.
Глава 3. Отправка сообщений множеству водителей такси, переходит к нашему проекту CC, предоставляя сведения о настройках значений предварительной выборки, которые управляют общим числом сообщений, способных отправляться определённому потребителю одновременно. Эта глава также охватывает то, каким образом потребители могут вручную подтверждать сообщения, рекомендации для разработки архитектуры сообщений с нулевыми потерями и того как получать сообщения без подтверждений. Данная глава закрывается предоставлением вам хорошего понимания веерного обмена.
Глава 4. Настройка доставки сообщений, посвящена TTL (time-to-live, времени жизни) сообщений, использованию истечения срока действия названия свойства сообщения и прочие важные темы касательно настройки доставки сообщений, включая обмен не доставленными сообщениями и очереди.
Глава 5. Маршрутизация сообщений, погружается глубже в поток сообщений, обсуждая как откликаться отправителю и как обмен заголовками можно применять для
выполнения основанной на свойствах маршрутизации сообщений. Кроме того, также обсуждаются стили взаимодействия запрос- отклик.Глава 6. Привносим RabbitMQ в промышленное применение, представляет различные стратегии, которые можно применять для обработки отказов брокера RabbitMQ. Темы содержат построение кластеров, кворум очередей, а также федерализацию. Эта глава также охватывает очень важные стороны RabbitMQ - ведение журнала и анализ данных.
Глава 7. Рекомендации по наблюдению и брокер, возгоняет все полезные сведения из предыдущих глав в передовые методы и ключевые готовые решения, которые можно применять при разработке реальных приложений. В этой заключительной главе также поясняются распространённые ошибки с RabbitMQ и предлагаются стратегии, которые можно использовать для отслеживания производительности системы и предотвращения катострофических ситуаций.
Как установить RabbitMQ в Ubuntu или через Docker поясняется в Главе 1. Как оживает Rabbit. Она также даёт представление от том как настраивать размещённую у поставщика версию RabbitMQ через CloudAMQP.
основной код этой книги просто отслеживать даже когда вы не знакомы с Ruby или Python. Все примеры кода на Ruby были проверены при помощи Ruby 2ю7, а все примеры на Python были проверены при помощи Python 2.7, причём в macOS. Однако, они, скорее всего, будут также работать и с последующими версиями.
Таблице 1-1Программные/ аппаратные средства | Требования к ОС |
---|---|
Python 2.7 |
macOS |
Ruby 2.7 |
Ubuntu |
веб браузер |
{Прим. пер.: Docker под Windows} |
Если вы пользуетесь цифровой версией данной книги, мы предлагаем вам набирать код самостоятльно или осуществлять доступ к коду через репозиторий GitHub (ссылка доступна в следующем разделе). Следование этому поможет вам избегать некие потенциальные ошибки, связанные с процедурой копирования и вставки кода.
Вы можете загрузить файлы примеров кода по адресу из своей учётной записи: http://www.packtpub.com. Если вы приобрели книгу где- либо ещё, вы можете посетить http://www.packtpub.com/support и зарегистрироваться для получения этих файлов по электронной почте непосредственно на свой адрес.
Вы можете загрузить эти файлы с кодом выполнив следующие шаги:
-
Зарегистрируйтесь на нашем вебсайте при помощи своего адреса электронной почты и пароля.
-
Переместите указатель мыши на закладку SUPPORT в верхней части.
-
Кликните по Code Downloads & Errata.
-
Введите название книги в блок Search.
-
Выберите книгу для которой вы ищете для загрузки файлы исходного кода.
-
В ниспадающем меню выберите где вы приобрели эту книгу.
-
Кликните по Code Download.
После загрузки убедитесь, пожалуйста, что вы раззиповали или раскрыли эту папку при помощи самой последней версии:
-
WinRAR / 7-Zip для Windows
-
Zipeg / iZip / UnRarX для Mac
-
7-Zip / PeaZip для Linux
Весь код в единой упаковке также размещён на GitHub. В случае обновления этого кода, он также будет обновлён и в обозначенном репозитории GitHub.
У нас также имеются и прочие упаковки кодов из нашего богатого каталога книг и видео- материалов , доступными в GitHub. Ознакомьтесь с ним!
Мы дополнительно снабжаем вас файлом PDF, который содержит цветные изображения экранных снимков/ схем, использованных в данной книге. Цветные изображения помогут вам лучше понять изменения в выводе. Вы можете загрузить этот файл по адресу: https://static.packt-cdn.com/downloads/9781789131666_ColorImages.pdf.
В данной книге вы найдёте ряд текстовых стилей, которые делают разницу между различными видами информации. Здесь мы приводим некоторые примеры этих стилей и объяснение их назначения.
CodeInText
обозначает в тексте, имена таблиц базы данных, имена папок,
имена файлов, расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter.
Вот некие примеры:
"Как и следует из названия, ни пользователь cc-admin
, ни пользователь
cc-dev
не обладают полномочиями выполнения чего бы то ни было в
cc-dev-vhost
.".
Блок кода записываются следующим образом:
connection = Bunny.new ENV['RABBITMQ_URI']
# Start a session with RabbitMQ
connection.start
Всякая командная строка ввода или вывода отображается так:
sudo apt install curl gnupg -y
sudo apt install apt-transport-https
Жирным шрифтом отображаются новые термины или важные слова, которые вы видите на экране. Например, появляющиеся в тексте слова в меню или блоках диалогов. Вот некий пример: "Кликните по закладке Admin в своей консоли".
Замечание | |
---|---|
Предостережения или важные замечания появляются в блоках подобных этому. |
Совет | |
---|---|
Советы и ловкие приёмы возникают таким образом. |
В этой книге вы будете находить отдельные часто повторяющиеся заголовки (Приготовление, Как это сделать..., Как это работает..., Также ознакомьтесь... и Дополнительно). Чтобы получить чёткие инструкции как выполнить определённый рецепт, применяйте эти разделы следующим образом:
Этот раздел сообщит вам что ожидает данный раздел и описывает как настроить всё необходимое для данного рецепта и выполнить предварительные настройки.
Данный раздел содержит все шаги, которые следует осуществить в нём.
Этот раздел обычно размещает подробное объяснение того что происходило в предыдущем разделе.
В этом разделе содержится дополнительная информация о данном рецепте чтобы вы получили больше сведений о самом рецепте.
Данный раздел предоставляет полезные ссылки на прочую полезную для обсуждаемого рецепта информацию.
Обращения наших читателей всегда приветствуются. Дайте нам знать что вы думаете об этой книге - что вам нравится или не нравится. Обратная связь с читателями важна нам, так как помогает нам разрабатывать издания, от которых вы на самом деле получите максимальную пользу.
Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.
Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.
Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.
Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.
Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.
Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}
Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.
Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.
Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.
- Предисловие
- Глава 1. Как оживает Rabbit
- >Глава 2. Создание приложения Такси
- Глава 3. Отправка сообщений множеству водителей такси
- Глава 4. Настройка доставки сообщений
- Глава 5. Маршрутизация сообщений
- Глава 6. Привносим RabbitMQ в промышленное применение
- Глава 7. Рекомендации по наблюдению и брокер
- Указатель