Недавно я начал рассматривать Infinispan как наш уровень кэширования. После прочтения режимов работы в Infinispan, как указано ниже.
- Встроенный режим: это когда вы запускаете Infinispan в той же JVM, что и ваши приложения.
- Режим клиент-сервер: это когда вы запускаете удаленный экземпляр Infinispan и подключаетесь к нему, используя различные протоколы.
Во-первых, я сейчас запутался, какой из двух вышеперечисленных режимов лучше всего подойдет для моего приложения.
У меня есть очень простой вариант использования, у нас есть код на стороне клиента, который будет вызывать нашу службу REST, используя основной виртуальный IP-адрес службы, а затем он будет балансировать нагрузку на отдельный Service Server
, где мы развернули нашу службу, а затем он будет взаимодействовать с базой данных Cassandra для получения данных на основе идентификатора пользователя. Ниже картинка все прояснит.
Предположим, например, что если клиент ищет какие-то данные для userId = 123
, тогда он вызовет нашу службу REST, используя основной VIP, а затем будет сбалансирована нагрузка на любой из наших четырех серверов службы, предположим, что она будет сбалансирована по нагрузке на Service1, а затем на service1. вызовет базу данных Cassandra, чтобы получить запись для userId = 123
, а затем вернется к клиенту.
Теперь мы планируем кэшировать данные с помощью Infinispan, поскольку сжатие убивает нашу производительность, поэтому наша скорость чтения может немного повыситься. Итак, я начал изучать Infinispan и наткнулся на два режима, о которых я упоминал ниже. Я не уверен, как лучше всего использовать Infinispan в нашем случае.
Во-вторых, что касается кеша Infinispan, я ожидаю, что если я буду использовать встроенный режим, то он должен выглядеть примерно так.
Если да, то как кэши Infinispan будут взаимодействовать друг с другом? Возможно, в какой-то момент мы будем искать данные для тех идентификаторов пользователей, которые будут находиться в кэше Infinispan другого экземпляра службы? Верно? Так что же произойдет в этом сценарии? Позаботится ли об этом Infinispan? если да, то какую настройку конфигурации мне нужно иметь, чтобы убедиться, что эта штука работает нормально.
Простите мое невежество, если я что-то упустил. Любая четкая информация прояснит для меня мои два вышеуказанных вопроса.