Оригинальный адрес:Введение в очереди сообщений и общие очереди сообщений
В практических приложениях очереди сообщений включают следующие четыре сценария:
- Связывание приложений: несколько приложений обрабатывают одно и то же сообщение через очередь сообщений, чтобы избежать сбоя всего процесса из-за сбоя вызова интерфейса;
- Асинхронная обработка: несколько приложений обрабатывают одно и то же сообщение в очереди сообщений, и сообщения обрабатываются одновременно между приложениями, что сокращает время обработки по сравнению с последовательной обработкой;
- Ограничение тока и пиковое сглаживание: широко используется при пиковых или панических покупках, чтобы избежать ситуации, когда система приложений зависает из-за чрезмерного трафика;
- Система, управляемая сообщениями: система разделена на очереди сообщений, производителей сообщений и потребителей сообщений.Производитель отвечает за генерацию сообщений, а потребители (их может быть несколько) отвечают за обработку сообщений;
прикладная муфта
Конкретный сценарий: пользователь загружает изображение с помощью альбома QQ, и система распознавания лиц выполнит распознавание лиц на изображении.Общая практика заключается в том, что после того, как сервер получает изображение, система загрузки изображений немедленно вызывает систему распознавания лиц, а затем вызов завершен, возврат выполнен успешно, как показано на следующем рисунке:
Этот метод имеет следующие недостатки:
- Не удалось настроить систему распознавания лиц, что привело к сбою загрузки изображения;
- Высокая задержка, после завершения обработки системы распознавания лиц, затем возврат к клиенту, даже если пользователю не нужно знать результат немедленно;
- Система загрузки изображений и система распознавания лиц вызывают друг друга и должны быть связаны;
При использовании очереди сообщений:
После того, как клиент загружает изображение, система загрузки изображения записывает информацию об изображении, такую как uin и пакет, в очередь сообщений и напрямую возвращает успех; в то время как система распознавания лиц периодически извлекает данные из очереди сообщений, чтобы завершить идентификацию вновь добавленного картина.
В это время системе загрузки изображения не нужно заботиться о том, обрабатывает ли система распознавания лиц информацию об изображении и когда обрабатывается информация об изображении. Фактически, поскольку пользователю не требуется немедленно знать результат распознавания лица, система распознавания лиц может выбирать различные стратегии планирования для обработки информации об изображении в очереди в соответствии со свободным временем, временем занятости и обычным временем.
Асинхронная обработка
Конкретный сценарий: чтобы использовать приложение и зарегистрироваться, система должна отправить регистрационное электронное письмо и подтвердить текстовое сообщение. Есть два способа обработки этих двух операций: последовательный и параллельный.
-
Серийный номер: после создания новой регистрационной информации отправляется первое регистрационное сообщение, а затем отправляется подтверждающее SMS;
Таким образом, необходимо, наконец, отправить SMS с подтверждением, прежде чем вернуть его клиенту.
-
Параллельная обработка: после записи новой регистрационной информации она обрабатывается параллельно путем отправки текстовых сообщений и отправки электронных писем;
Таким образом, отправка текстовых сообщений и электронных писем должна быть обработана, а затем возвращена клиенту.
Если предположить, что время обработки трех вышеуказанных подсистем составляет 50 мс, а сетевая задержка не учитывается, общее время обработки равно:
Серийный: 50+50+50=150 мс Параллельно: 50+50 = 100 мс
- При использовании очереди сообщений
И возвращать успех клиенту сразу после записи в очередь сообщений, общее время ответа зависит от времени записи в очередь сообщений, а время записи в саму очередь сообщений может быть очень быстрым и может быть проигнорировано, поэтому total Время обработки удваивается по сравнению с последовательным и удваивается по сравнению с параллельным
Пиковое ограничение тока
Конкретные сценарии: торговые веб-сайты выполняют пиковые действия.Как правило, из-за чрезмерного мгновенного трафика и чрезмерного приема сервера трафик резко возрастает, а связанные системы не могут обрабатывать запросы или даже аварийно завершают работу. После присоединения к очереди сообщений система может извлекать данные из очереди сообщений, что эквивалентно буферизации очереди сообщений.
Этот метод имеет следующие преимущества:
- Запрос сначала попадает в очередь сообщений, а не обрабатывается непосредственно системой бизнес-обработки, и создается буфер, что значительно снижает нагрузку на систему бизнес-обработки;
- Длина очереди может быть ограничена, ведь во время seckill пользователи, которые встают в очередь позже, не могут получить предмет в seckill, и эти запросы могут напрямую отбрасываться, возвращая информацию о том, что действие закончилось или предмет был распроданный;
система, управляемая сообщениями
Конкретный сценарий: пользователь загружает новый пакет фотографий, и система распознавания лиц должна сгруппировать все фотографии пользователя.После завершения кластеризации система сверки повторно создает индекс лица пользователя (ускоряя запрос). Три подсистемы связаны очередью сообщений, результаты обработки предыдущего этапа помещаются в очередь, а последний этап получает сообщения из очереди для продолжения обработки.
Этот метод имеет следующие преимущества:
- Избегайте прямого вызова следующей системы, чтобы вызвать сбой текущей системы;
- Каждая подсистема может обрабатывать сообщения более гибко.Вы можете выбрать обработку сообщений при их получении, вы можете выбрать их регулярную обработку или вы можете разделить периоды времени для их обработки с разной скоростью обработки;
Если вы чувствуете себя вознагражденным после прочтения, пожалуйста, подпишитесь и добавьте общедоступную учетную запись [Niu Mi Technology], чтобы узнать больше захватывающей истории! ! !: