Я смотрю на создание приложения, которое имеет много источников данных, каждый из которых помещает события в мою систему.События имеют четко определенную структуру данных и могут быть закодированы с использованием JSON или XML.
Я хотел бы быть в состоянии гарантировать, что события сохраняются постоянно, и что события используются как часть шины публикации / подписки с несколькими подписчиками, возможными для каждого события.
Для базы данных доступность очень важна, даже если она масштабируется до нескольких узлов, а допуск на разделы важен, чтобы я мог масштабировать количество мест, в которых могут храниться мои события.Возможная последовательность достаточно хороша для меня.
Я думал об использовании корпоративной шины обмена сообщениями JMS (например, Mule ) или корпоративной шины обмена сообщениями AMQP (например, RabbitMQ или ZeroMQ ).
Но для моего приложения, похоже, что если бы я мог настроить систему подписки на публикацию с CouchDB или чем-то подобным, это решило бы мою проблему без необходимости интеграции шины обмена корпоративными сообщениями и системы постоянного хранения.
Что будет работать лучше, CouchDB + масштабирование + балансировка нагрузки + какой-то механизм PubSub или явная система обмена сообщениями PubSub с подключенным в конечном итоге согласованным, доступным, устойчивым к разделам хранилищем?Какой из них легче настроить, администрировать и использовать?Какое решение будет иметь высокую пропускную способность для данной стоимости?Почему?
Кроме того, есть ли еще вопросы, которые я должен задать перед выбором своих технологий?(Кстати, Java - это язык на стороне сервера и на стороне клиента).