База данных или очередь сообщений для обмена данными между двумя приложениями

У меня есть вопрос дизайна. У меня есть приложение (назовем это приложение A), собирающее статистику из системы, регулярно опрашивая каждый компонент в системе. У меня есть второе приложение (приложение B), которое должно принимать некоторые решения и применять их в той же системе, из которой приложение B собирает статистику. Для процесса принятия решения приложение B нуждается в некоторой информации из статистики, собранной приложением A. Таким образом, в определенные моменты времени (это будет 10-100 с раз в секунду) приложение B делает запрос к приложению A, чтобы получить некоторую информацию (т.е. некоторая актуальная статистика о системе). Как лучше всего реализовать этот обмен информацией из приложения A в приложение B? Я думал о 2 решениях:1) решение в стиле RPC, использующее очередь сообщений (RabbitMQ) 2) решение на основе базы данных, таблица, в которой приложение A публикует самую актуальную информацию, а приложение B - при необходимости, Пожалуйста, дайте некоторое представление о том, будет ли какой-либо из этих двух подходить хорошим решением или нет. Любые другие предложения приветствуются. Спасибо!

1 ответ

Решение

Рассмотрите возможность обращения потока информации. Пусть приложение A сообщит приложению B, когда что-то изменится, возможно, через сообщение / событие, используя очередь сообщений. Затем приложение B может сохранить собственную версию данных приложения A, имеющую высокую доступность, и быстро и эффективно запрашивать ее, не пересекая границы проводов или процессов. Это высокодоступное хранилище может быть просто в памяти или каким-то образом высокопроизводительным хранилищем значений ключей.

Другие вопросы по тегам