HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Если вы используете в качестве основных средств для взаимодействия микросервисов<a>очереди</a>, вы можете добиться определенных преимуществ. О них -- наша статья.</p>
1 <p>Если вы используете в качестве основных средств для взаимодействия микросервисов<a>очереди</a>, вы можете добиться определенных преимуществ. О них -- наша статья.</p>
2 <h2>Плюс № 1 -- Decoupling (логическое отделение независимых компонентов друг от друга)</h2>
2 <h2>Плюс № 1 -- Decoupling (логическое отделение независимых компонентов друг от друга)</h2>
3 <p>Главная черта микросервисов, как известно, -- это автономность. И очереди сообщений в большинстве случаев действительно помогают снизить зависимости между ними. Ведь, по сути, любое передаваемое в очереди сообщение -- не более, чем массив байтов с определенными метаданными. Метаданные необходимы для направления в конкретную очередь, ну а информация, которая содержится в основной части (то есть в теле) сообщения, может быть почти любой. То есть брокер не анализирует данные, а лишь выступает в роли маршрутизатора. Все это дает возможность настроить взаимодействие между компонентами, которые работают даже на разных платформах/языках.</p>
3 <p>Главная черта микросервисов, как известно, -- это автономность. И очереди сообщений в большинстве случаев действительно помогают снизить зависимости между ними. Ведь, по сути, любое передаваемое в очереди сообщение -- не более, чем массив байтов с определенными метаданными. Метаданные необходимы для направления в конкретную очередь, ну а информация, которая содержится в основной части (то есть в теле) сообщения, может быть почти любой. То есть брокер не анализирует данные, а лишь выступает в роли маршрутизатора. Все это дает возможность настроить взаимодействие между компонентами, которые работают даже на разных платформах/языках.</p>
4 <h2>Плюс № 2 -- улучшение масштабируемости</h2>
4 <h2>Плюс № 2 -- улучшение масштабируемости</h2>
5 <p>Message Queues упрощают независимое масштабирование микросервисов. Когда вы наблюдаете за состоянием очередей, вы можете масштабировать сервисы, на которые приходится наибольшая часть нагрузки. Вдобавок к этому, очереди позволяют вам не только увеличивать количество экземпляров уже существующих сервисов, но и дают вам возможность добавлять новые экземпляры, причем делать это с минимальным временем простоя. По большему счету, для этого потребуется лишь добавить нового потребителя, который станет прослушивать события в очереди.</p>
5 <p>Message Queues упрощают независимое масштабирование микросервисов. Когда вы наблюдаете за состоянием очередей, вы можете масштабировать сервисы, на которые приходится наибольшая часть нагрузки. Вдобавок к этому, очереди позволяют вам не только увеличивать количество экземпляров уже существующих сервисов, но и дают вам возможность добавлять новые экземпляры, причем делать это с минимальным временем простоя. По большему счету, для этого потребуется лишь добавить нового потребителя, который станет прослушивать события в очереди.</p>
6 <p>Но тут стоит учесть, что сами очереди тоже надо масштабировать, а это уже может создать ряд дополнительных трудностей.</p>
6 <p>Но тут стоит учесть, что сами очереди тоже надо масштабировать, а это уже может создать ряд дополнительных трудностей.</p>
7 <h2>Плюс № 3 -- балансировка нагрузки</h2>
7 <h2>Плюс № 3 -- балансировка нагрузки</h2>
8 <p>Когда один из сервисов с нагрузкой не справляется, хотелось бы запускать больше экземпляров этого сервиса, причем делать это быстро и без дополнительных настроек. Как правило, для решения этих задач применяют<strong>балансировщик нагрузки</strong>, который интегрирован с сервером обнаружения служб и обеспечивает распределение трафика. В случае использования очередей сообщений непосредственно<strong>сам брокер и является балансировщиком нагрузки</strong>. А если несколько потребителей прослушивают очередь одновременно, то и сообщения станут распределяться между ними с учетом настроенной стратегии.</p>
8 <p>Когда один из сервисов с нагрузкой не справляется, хотелось бы запускать больше экземпляров этого сервиса, причем делать это быстро и без дополнительных настроек. Как правило, для решения этих задач применяют<strong>балансировщик нагрузки</strong>, который интегрирован с сервером обнаружения служб и обеспечивает распределение трафика. В случае использования очередей сообщений непосредственно<strong>сам брокер и является балансировщиком нагрузки</strong>. А если несколько потребителей прослушивают очередь одновременно, то и сообщения станут распределяться между ними с учетом настроенной стратегии.</p>
9 <h2>Плюс № 4 -- повышение надежности</h2>
9 <h2>Плюс № 4 -- повышение надежности</h2>
10 <p>Когда выйдет из строя один из компонентов, это не скажется на работе всей системы: при восстановлении он выполнит обработку сообщения, находящегося в очереди. Таким образом, ваш web-сайт по-прежнему сможет функционировать даже в том случае, если задержится часть обработки заказа, к примеру, по причине проблем с сервером БД либо системой электронной почты.</p>
10 <p>Когда выйдет из строя один из компонентов, это не скажется на работе всей системы: при восстановлении он выполнит обработку сообщения, находящегося в очереди. Таким образом, ваш web-сайт по-прежнему сможет функционировать даже в том случае, если задержится часть обработки заказа, к примеру, по причине проблем с сервером БД либо системой электронной почты.</p>
11 <p>Однако стоит учесть, что в такой ситуации очередь сама приобретет статус<strong>SPoF</strong>(Single Point of Failure), следовательно, надо будет заранее предусмотреть действия в случае ее аварийного отключения.</p>
11 <p>Однако стоит учесть, что в такой ситуации очередь сама приобретет статус<strong>SPoF</strong>(Single Point of Failure), следовательно, надо будет заранее предусмотреть действия в случае ее аварийного отключения.</p>
12 <h2>Плюс № 5 -- безопасность</h2>
12 <h2>Плюс № 5 -- безопасность</h2>
13 <p>Большая часть брокеров выполняет аутентификацию приложений, которые стараются получить доступ к очереди, плюс ко всему, брокеры дают возможность использовать шифрование сообщений как и случае их передачи по сети, так и в случае их хранения непосредственно в самой очереди. Следовательно, очередь снимет с ваших сервисов бремя по организации авторизации запросов.</p>
13 <p>Большая часть брокеров выполняет аутентификацию приложений, которые стараются получить доступ к очереди, плюс ко всему, брокеры дают возможность использовать шифрование сообщений как и случае их передачи по сети, так и в случае их хранения непосредственно в самой очереди. Следовательно, очередь снимет с ваших сервисов бремя по организации авторизации запросов.</p>
14 <p><em>По материалам https://mcs.mail.ru/blog/.</em></p>
14 <p><em>По материалам https://mcs.mail.ru/blog/.</em></p>
15  
15