Подтвердить что ты не робот

Java-распределенный кеш для низкой латентности, высокая доступность

Я никогда не использовал распределенные кеши /DHT, такие как memcached, jboss cache, ehcache и т.д. Мне интересно, какая из них подходит для моего использования.

Во-первых, я не занимаюсь веб-приложениями (поскольку большинство этих проектов, похоже, ориентированы на веб-приложения). Я пишу серверы (системы управления заказами фактически) для финансовых торговых фирм. Сами серверы не слишком сложны. Они должны получать информацию (рыночные данные, заказы, казни и т.д.), Маршрутизируя их к месту назначения, в то же время изменяя некоторые из этих сообщений.

Я рассматриваю эти продукты для решения следующих проблем:

  • Безопасный репозиторий состояния сервера. Я предпочел бы построить логику моего приложения в виде группы трансформаторов (похожей на Apache Camel) и сохранить состояние в безопасном месте.

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

  • Этот репозиторий должен быть быстрым. Однозначные миллисекунды рассчитываются здесь, другими словами, системы, которые потребляют/обрабатывают эти данные, являются автоматизированными системами, а не людьми, которые нажимают на ссылки. Эта система должна иметь высокую пропускную способность и низкую задержку. Отправляя свои данные за пределы процесса, я обязательно замедляю производительность, но я стараюсь сбалансировать абсолютную необработанную скорость и абсолютную защиту данных.

  • Этот репозиторий должен быть безопасным. Как и в случае нескольких резервных копий в режиме онлайн, этой системе необходимо записать данные на диск (возможно, более одного диска).

Мне бы очень хотелось прекратить писать собственные "серверы транзакций". Правильно ли я смотрю на такие проекты, как кеш jboss, ehcache и т.д.?

Спасибо

4b9b3361

Ответ 1

Hazelcast - это открытое, транзакционное, распределенное кэширование для Java. Хорошо подходит для финансовых приложений. Он выпущен под лицензией Apache.

Hazelcast на самом деле немного больше, чем распределенный кеш; это распределенная реализация очереди, темы, карты, мультимапа, блокировки, службы-исполнителя для Java.

Ответ 2

Многие финансовые учреждения используют Oracle Coherence для этого.

Он не будет соответствовать всем пунктам в вашем списке.

Ответ 3

Я считаю, JBoss Cache достаточно хорош для ваших целей:

  • быстро
  • распределяется
  • транзакция с реализацией MVCC (без блокировки чтения)
  • поддерживает JTA
  • поддерживает асинхронный режим
  • данные о выселении в постоянное хранилище (jdbc, bdb и т.д.)

Ответ 4

Здесь у вас есть хорошие бесплатные решения. Однако, если вам нужно более быстрое решение, вы можете попробовать 29 West или Solace, которые имеют надежные/гарантированные решения для обмена сообщениями в течение 100 секунд.

Ответ 5

Посмотрите Gemfire его высокопроизводительную сетку данных памяти. Он обеспечивает распределенный кеш, объект querieng и уведомления о событиях.

Ответ 6

Посмотрите Распределенный кэш и сетку данных Cacheonix. Он удовлетворяет вашим требованиям к низкой латентности и надежности, предоставляя когерентный локальный кеш и распределяя кэшированные данные на несколько серверов и реплицируя кэшированные данные. Полное раскрытие: я работаю в Cacheonix.

Ответ 7

Я предлагаю NCache из-за следующих причин:

  • Поддержка .NET и java
  • Широкий диапазон топологий
  • Не требуется изменение кода
  • Высоко распределенный и масштабируемый
  • Абсолютно бесплатно (NCache Express)