Говоря об очереди сообщений

очередь сообщений

вводить

Сценарии применения очередей сообщений очень широки, и в настоящее время их используют многие компании.Основное промежуточное ПО для обработки сообщений включает ActiveMQ, RabbitMQ, RocketMQ, ZeroMQ, Kafka и т. д. ActiveMQ — старейший MQ, открытый проект Apache, и ZeroMQ — самая быстрая очередь сообщений, RabbitMQ тоже очень хорош. RocketMQ — это проект с открытым исходным кодом Alibaba. Теперь он был передан в дар Apache и стал проектом верхнего уровня Apache. пропускная способность и часто используется для обработки журналов.Из-за объема активность ActiveMQ и RabiitMQ становится все ниже и ниже, а RabbitMQ написан на языке erlang.Хотя высокая производительность параллелизма языка erlang хороша, людей не так много которые играют в язык erlang в Китае.Это невозможно для промежуточного уровня Пойдем учить язык (тогда не ешьте), RocketMQ становится все более и более активным из-за его очень хорошей производительности, и он сопротивлялся Double Eleven, Double Eleven Али Двенадцать и т. д., но не беспокойтесь об этом, их много, промежуточное программное обеспечение сообщений почти одинаковое, если вы понимаете одно и изучаете другие, оно такое же.

Сценарии применения

Сценариев применения   MQ много, основные из них — асинхронность, отсечение пиков, развязка, которые следует знать наизусть.Расскажем о каждой возможности подробно ниже:

   1. Асинхронный

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

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

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

  2. Развязка

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

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

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

  3. Отсечение пиков

В эпоху высокой степени параллелизма по мере увеличения числа пользователей объем параллелизма становится все больше и больше, и база данных должна иметь ограниченную емкость, поэтому очередь сообщений действует как буфер, такой как система seckill, в определенная секундная активность, В то же время за секунды погибает 5000 человек (в зависимости от количества пользователей системы, таких как Taobao Double Eleven, что составляет около 600 000 в секунду), если не будет введена очередь сообщений, все запросы будут упасть на MySQL, и MySQL может быть недоступен в одно мгновение (в зависимости от обработки сервера).возможность), вы можете сказать добавление Redis в качестве кеша, но мы сказали, что любая база данных (реляционная и нереляционная) имеет свою емкость , и не все подходит для размещения в Redis, поэтому на этот раз очередь сообщений играет важную роль, давайте рассмотрим ситуацию, когда очередь сообщений не введена.

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

Из приведенного выше рисунка видно, что после того, как пять лет назад мы ввели очереди сообщений, все запросы пользователей не все помещаются в базу данных, а помещаются в MQ, а затем помещаются в очередь сообщений.Поскольку очередь в порядке, база данных разгружается.Вы также можете установить длину значения очереди и разрешить вход только нескольким сообщениям.Это разрешено, потому что это общество - это общество, где сильные едят слабых, и вам нужно иметь определенное количество удачи.Если вам не повезло, когда вы входите в очередь сообщений Если вы полны, это ваша жизнь.Если вам повезло, вы первым входите в очередь, то поздравляю с успехом. Лучше всего купить лотерейный билет, может ты разбогатеешь!

  

Плюсы и минусы

Все хорошо и плохо, и есть приобретения и потери. Когда ты получаешь это, ты на самом деле теряешь это. У тебя есть девушка. Хотя ты больше не одинок, ты потерял свою свободу (Я бы предпочел не быть свободным, ха-ха )

   Использование промежуточного программного обеспечения также приносит много проблем:

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

    2. Высокая доступность: например, если MQ зависает, как я могу гарантировать, что сообщения не будут потеряны?Для такого рода проблем необходимо построить кластер MQ, чтобы обеспечить высокую доступность

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

Мы видим, что введение новости правильное, проблем на самом деле будет много, вышеперечисленные лишь основные, будут приобретения и потери, если у вас есть любовь, вы потеряете свободу, а если вы хотите предаться , вы должны заплатить цену

Вывод:

       Любовь искренняя и дорогая, а очереди сообщений дороже.