С архитектурной точки зрения оба варианта совпадают с хранением данных на сервере базы данных Oracle для извлечения другого приложения.
Как RabbitMQ, так и решение Redis требуют, чтобы ваши приложения подключались к промежуточному серверу, который обрабатывает передачу данных. Redis больше всего похож на Oracle, потому что его можно использовать просто как постоянную базу данных с сетевым API. Но RabbitMQ немного отличается, потому что MQ Broker не несет ответственности за сохранение данных. Если вы правильно настроите его и будете использовать правильные параметры при публикации сообщения, то RabbitMQ фактически сохранит данные для вас, но вы не сможете получить эти данные, кроме как в рамках обычного процесса очереди сообщений. Другими словами, RabbitMQ предназначен для обмена сообщениями и предлагает только постоянство как способ восстановления после сетевых проблем или сбоев системы.
Я бы предложил использовать RabbitMQ и любые языки программирования, с которыми вы уже знакомы. Поскольку M в LAMP обычно интерпретируется как MySQL, это означает, что вы либо вообще не используете MySQL, либо используете его только для длительного хранения данных, а не для связи в реальном времени.
Сайт RabbitMQ содержит огромное количество документации по созданию приложений с помощью AMQP. Я предлагаю, чтобы после установки RabbitMQ вы прочитали документы для rabbitmqctl
, а затем создали vhost
для экспериментов. Таким образом, ваши эксперименты легко очистить, не сбрасывая все заново. Я также предлагаю использовать только обмены темами, потому что вы можете эмулировать поведение прямого и разветвленного обмена с использованием подстановочных знаков в routing_key.
Помните, вы публикуете сообщения только на биржах и получаете сообщения только из очередей. Обмен отвечает за шаблон, сопоставляющий ключ сообщения routing_key с ключом связывания очереди, чтобы определить, какие очереди должны получить копию сообщения. Стоит изучить всю модель AMQP, даже если вы планируете отправлять сообщения только в одну очередь с тем же именем, что и для routing_key.
Если вы собираете свой клиент в браузере и хотите создать прототип, то вам следует рассмотреть возможность использования XHR сегодня, а затем перейти к чему-то вроде Kamaloka-js, которая является чистой реализацией Javascript для AMQP (AMQ Протокол), который является стандартным протоколом, используемым для связи с брокером сообщений RabbitMQ. Другими словами, создайте его на основе того, что вы знаете сегодня, а затем ускорите его, что-то (AMQP), имеющее долгосрочное будущее в вашем наборе инструментов.