Реализовать поддержку кэша в сервисной структуре - PullRequest
0 голосов
/ 03 апреля 2019

Я работаю над проектом, в котором я буду вызывать методы Service Fabric и возвращать данные конечному пользователю.Данные изменяются очень редко или почти постоянно, поэтому я хочу сохранить кэш и вернуть его, если данные не были изменены.

Структура проекта: WepApi (Служба без сохранения состояния) -> Репозиторий -> SatefulService

Как лучше всего реализовать это в Azure Service Fabric?Я думаю о двух вариантах:

  1. Redis кеш а.Создание проекта кэша Redis, в котором он будет предоставлять две конечные точки для хранения и получения данных кэша.Этот проект будет ссылаться на уровне хранилища.б.Создание службы кэширования Redis (сервисная структура) и вызов из репозитория.
  2. служба с отслеживанием состояния a.Создание отдельного словаря в существующей службе с сохранением состояния и использование его для получения и хранения данных.

И у меня также есть вопросы ниже.

Подход № 1:

  1. Мы должны зависеть от сторонней системы (кэш Redis), и мы можем не получить точные результаты, если сервер недоступен.

Подход № 2:

  1. Может возникнуть проблема с производительностью, если со временем данные кеша увеличатся.

Есть ли наилучшие подходы для реализации кеша в сервисной фабрике?

Спасибо,

1 Ответ

1 голос
/ 03 апреля 2019

Надежные коллекции были разработаны для повышения производительности, поскольку они выполняются в процессе, а данные хранятся в памяти, если имеется достаточно доступной памяти (что в вашем случае должно быть в порядке для десяти тысяч записей).Единственное замедление по сравнению с обычным словарем в памяти - это то, что надежный словарь должен поддерживать согласованность транзакций во время чтения, но я полагаю, что вам все равно нужна эта согласованность?

...