Промежуточное ПО для обмена сообщениями — сценарии использования

задняя часть сервер
Промежуточное ПО для обмена сообщениями — сценарии использования

Оригинальный адрес:Введение в очереди сообщений и общие очереди сообщений

В практических приложениях очереди сообщений включают следующие четыре сценария:

  • Связывание приложений: несколько приложений обрабатывают одно и то же сообщение через очередь сообщений, чтобы избежать сбоя всего процесса из-за сбоя вызова интерфейса;
  • Асинхронная обработка: несколько приложений обрабатывают одно и то же сообщение в очереди сообщений, и сообщения обрабатываются одновременно между приложениями, что сокращает время обработки по сравнению с последовательной обработкой;
  • Ограничение тока и пиковое сглаживание: широко используется при пиковых или панических покупках, чтобы избежать ситуации, когда система приложений зависает из-за чрезмерного трафика;
  • Система, управляемая сообщениями: система разделена на очереди сообщений, производителей сообщений и потребителей сообщений.Производитель отвечает за генерацию сообщений, а потребители (их может быть несколько) отвечают за обработку сообщений;

прикладная муфта

Конкретный сценарий: пользователь загружает изображение с помощью альбома QQ, и система распознавания лиц выполнит распознавание лиц на изображении.Общая практика заключается в том, что после того, как сервер получает изображение, система загрузки изображений немедленно вызывает систему распознавания лиц, а затем вызов завершен, возврат выполнен успешно, как показано на следующем рисунке:

应用耦合

Этот метод имеет следующие недостатки:

  1. Не удалось настроить систему распознавания лиц, что привело к сбою загрузки изображения;
  2. Высокая задержка, после завершения обработки системы распознавания лиц, затем возврат к клиенту, даже если пользователю не нужно знать результат немедленно;
  3. Система загрузки изображений и система распознавания лиц вызывают друг друга и должны быть связаны;

При использовании очереди сообщений:

使用消息队列解耦

После того, как клиент загружает изображение, система загрузки изображения записывает информацию об изображении, такую ​​как uin и пакет, в очередь сообщений и напрямую возвращает успех; в то время как система распознавания лиц периодически извлекает данные из очереди сообщений, чтобы завершить идентификацию вновь добавленного картина.

В это время системе загрузки изображения не нужно заботиться о том, обрабатывает ли система распознавания лиц информацию об изображении и когда обрабатывается информация об изображении. Фактически, поскольку пользователю не требуется немедленно знать результат распознавания лица, система распознавания лиц может выбирать различные стратегии планирования для обработки информации об изображении в очереди в соответствии со свободным временем, временем занятости и обычным временем.

Асинхронная обработка

Конкретный сценарий: чтобы использовать приложение и зарегистрироваться, система должна отправить регистрационное электронное письмо и подтвердить текстовое сообщение. Есть два способа обработки этих двух операций: последовательный и параллельный.

  • Серийный номер: после создания новой регистрационной информации отправляется первое регистрационное сообщение, а затем отправляется подтверждающее SMS;

    串行方式

    Таким образом, необходимо, наконец, отправить SMS с подтверждением, прежде чем вернуть его клиенту.

  • Параллельная обработка: после записи новой регистрационной информации она обрабатывается параллельно путем отправки текстовых сообщений и отправки электронных писем;

    并行处理

    Таким образом, отправка текстовых сообщений и электронных писем должна быть обработана, а затем возвращена клиенту.

Если предположить, что время обработки трех вышеуказанных подсистем составляет 50 мс, а сетевая задержка не учитывается, общее время обработки равно:

Серийный: 50+50+50=150 мс Параллельно: 50+50 = 100 мс

  • При использовании очереди сообщений

使用消息队列

И возвращать успех клиенту сразу после записи в очередь сообщений, общее время ответа зависит от времени записи в очередь сообщений, а время записи в саму очередь сообщений может быть очень быстрым и может быть проигнорировано, поэтому total Время обработки удваивается по сравнению с последовательным и удваивается по сравнению с параллельным

Пиковое ограничение тока

Конкретные сценарии: торговые веб-сайты выполняют пиковые действия.Как правило, из-за чрезмерного мгновенного трафика и чрезмерного приема сервера трафик резко возрастает, а связанные системы не могут обрабатывать запросы или даже аварийно завершают работу. После присоединения к очереди сообщений система может извлекать данные из очереди сообщений, что эквивалентно буферизации очереди сообщений.

限流削峰

Этот метод имеет следующие преимущества:

  1. Запрос сначала попадает в очередь сообщений, а не обрабатывается непосредственно системой бизнес-обработки, и создается буфер, что значительно снижает нагрузку на систему бизнес-обработки;
  2. Длина очереди может быть ограничена, ведь во время seckill пользователи, которые встают в очередь позже, не могут получить предмет в seckill, и эти запросы могут напрямую отбрасываться, возвращая информацию о том, что действие закончилось или предмет был распроданный;

система, управляемая сообщениями

Конкретный сценарий: пользователь загружает новый пакет фотографий, и система распознавания лиц должна сгруппировать все фотографии пользователя.После завершения кластеризации система сверки повторно создает индекс лица пользователя (ускоряя запрос). Три подсистемы связаны очередью сообщений, результаты обработки предыдущего этапа помещаются в очередь, а последний этап получает сообщения из очереди для продолжения обработки.

消息驱动的系统

Этот метод имеет следующие преимущества:

  1. Избегайте прямого вызова следующей системы, чтобы вызвать сбой текущей системы;
  2. Каждая подсистема может обрабатывать сообщения более гибко.Вы можете выбрать обработку сообщений при их получении, вы можете выбрать их регулярную обработку или вы можете разделить периоды времени для их обработки с разной скоростью обработки;

Если вы чувствуете себя вознагражденным после прочтения, пожалуйста, подпишитесь и добавьте общедоступную учетную запись [Niu Mi Technology], чтобы узнать больше захватывающей истории! ! !:

微信公众号