#javascript #node.js #asynchronous #rabbitmq #message-queue
#javascript #node.js #асинхронный #rabbitmq #очередь сообщений
Вопрос:
Я читаю о том, когда использовать node, и я вижу, что преимущество неблокирующего характера node заключается в том, что он не блокирует остальную часть кода и другие запросы с операциями ввода-вывода, которые занимают некоторое время, и я понимаю, что это происходит путем отправки этих операций событиюцикл.
Мой вопрос в том, почему мне нужно использовать другую службу очереди сообщений, которая выполняла бы ту же функциональность цикла событий?
Часть, с которой я запутался, — это раздел «Ввод в очередь» здесь: какого черта я должен использовать Node JS
Комментарии:
1. RabbitMQ — это средство обмена сообщениями для взаимодействия между процессами и устройствами. EventQueue — это модель параллелизма внутри движка nodejs. Они не имеют ничего общего друг с другом…
2. @derpirscher Я в замешательстве, почему автор статьи упомянул это как решение?
3. Потому что в этом описанном сценарии (большая нагрузка на базу данных) на сервере запущены два разных процесса: один для связи с клиентом, другой для связи с базой данных. И RabbitMQ (или любой другой messagebroker) может использоваться для связи между этими двумя процессами.
4. Использование посредника сообщений становится понятным только тогда, когда у вас есть архитектура распределенной системы, где вместо одного гигантского приложения у вас есть много небольших компонентов, составляющих все приложение. В таких системах связь между каждым компонентом (иначе сервисами) не может осуществляться синхронно, поскольку может быть много сервисов, которые необходимо координировать между собой. Такие брокеры, как RabbitMQ, Kafka, SNS, помогают решить эту проблему и создать конечную согласованность во всей системе. Чтобы лучше понять эти шаблоны, вам следует прочитать о микросервисах.