Как обеспечить согласованность между несколькими экземплярами облачного хранилища памяти GCP?

У меня есть приложение, кэширующее некоторые данные в облачном хранилище памяти. Приложение имеет несколько экземпляров, работающих в одном регионе. AppInstanceA кеширует в MemStoreA, а AppInstanceB кеширует в MemStoreB. Определенное действие пользователя из приложения должно выполнять вытеснение кеша. Есть ли в GCP возможность удалить записи как в MemStoreA, так и в MemStoreB независимо от того, из какого экземпляра приложения запускается действие?

Спасибо


person vtjoseph    schedule 14.09.2020    source источник
comment
AFAIK, нет, это невозможно, вы должны сами это кодировать. Или используйте тот же экземпляр хранилища памяти.   -  person guillaume blaquiere    schedule 14.09.2020
comment
Спасибо, Гийом Блакьер. Мы изучаем модальное окно pub / sub, чтобы решить эту проблему, но хотели проверить, существует ли какое-либо встроенное решение. Оцените ваш ответ.   -  person vtjoseph    schedule 14.09.2020
comment
PubSub модальный? Что вы подразумеваете под модальным?   -  person guillaume blaquiere    schedule 15.09.2020
comment
извините, я имел в виду использование gcp pub sub для запуска удаления кеша.   -  person vtjoseph    schedule 15.09.2020


Ответы (1)


Вы можете использовать для этого PubSub.

  • Создать тему
  • Публикуйте в теме, когда у вас есть ключ, который нужно аннулировать
  • Создайте 1 подписку на каждый экземпляр хранилища памяти
  • Подключите 1 функцию (каждый раз к одной и той же функции) для каждой подписки с переменной среды, которая указывает используемый экземпляр

Таким образом, функция запускается параллельно, и вы можете ожидать, что примерно в одно и то же время аннулирует ключ во всех экземплярах хранилища памяти.

person guillaume blaquiere    schedule 15.09.2020
comment
Большое спасибо. Да, это очень похоже на дизайн, который у нас есть, используйте архитектуру, управляемую событиями, с функцией публикации / подписки и облачной функцией. Не был уверен, существует ли уже существующая функция. Очень признателен за вашу помощь! - person vtjoseph; 16.09.2020