Приложение Service Fabric с Entity Framework?

Я начал изучать приложения Service Fabric и немного запутался в Reliable Services с отслеживанием состояния.

В Reliable Services с сохранением состояния состояние означает, что данные должны храниться в таблицах в наших обычных приложениях базы данных или что-то еще?

Можно ли использовать EF с надежными службами с отслеживанием состояния?

Как мы можем хранить/извлекать данные в/из базы данных (например, «Продукты», «Категории», «Сотрудники» и т. д.), используя EF в Reliable Services?

Любое руководство/помощь будет очень ценным.

заранее спасибо


person Jo Paul    schedule 22.01.2019    source источник


Ответы (1)


Существует 2 вида надежных сервисов: без сохранения состояния и с сохранением состояния. Основное отличие заключается в том, что сервисы с отслеживанием состояния предоставляют доступ к надежным коллекциям для хранения ваших данных.

TL;DR

Если вы планируете использовать Entity Framework (EF) и не планируете хранить данные с помощью надежных коллекций, придерживайтесь служб без отслеживания состояния.

Q1

В Reliable Services с сохранением состояния состояние означает, что данные должны храниться в таблицах в наших обычных приложениях базы данных или что-то еще?

Это означает, что вы планируете хранить данные в Reliable Collections.

Вопрос 2

Можно ли использовать EF с надежными службами с отслеживанием состояния?

Да, даже когда вы используете службу с отслеживанием состояния, вы можете написать логику для хранения данных в EF и, при желании, хранить данные в надежных коллекциях (например, см. Вариант использования, представленный Олегом в комментариях), но если вы хотите использовать только EF, тогда идите для службы без гражданства. Служба с отслеживанием состояния имеет смысл только в том случае, если вы используете надежные коллекции.

Вопрос 3

Как мы можем хранить/извлекать данные в/из базы данных (например, «Продукты», «Категории», «Сотрудники» и т. д.), используя EF в Reliable Services?

Создайте службу без сохранения состояния, добавьте пакеты EF NuGet и напишите код, как обычно.

Дополнительная информация

Из этого краткого руководства

Служба без сохранения состояния — это тип службы, который в настоящее время является нормой в облачных приложениях. Он считается не сохраняющим состояние, поскольку сама служба не содержит данных, которые необходимо надежно хранить или обеспечивать высокую доступность. Если экземпляр службы без отслеживания состояния отключается, все его внутреннее состояние теряется. В этом типе службы состояние должно сохраняться во внешнем хранилище, таком как таблицы Azure или база данных SQL, чтобы обеспечить высокую доступность и надежность.

и

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

Надежную коллекцию лучше всего можно описать как хранилище данных No-Sql. Вам решать, хотите ли вы использовать это или использовать сочетание служб с отслеживанием состояния и без сохранения состояния.

Более подробный обзор надежных коллекций см. в статье этот документ

person Peter Bons    schedule 22.01.2019
comment
Одна маленькая вещь от меня. Одним из вариантов использования Stateful Service с внешней базой данных является использование Reliable State в качестве кэша верхнего уровня — он быстрый, распределенный, реплицируемый прямо из коробки. - person Oleg Karasik; 22.01.2019