Простой пример: у меня есть служба, насчитывающая 1 000 000 пользователей, и у каждого пользователя есть информация о профиле. Я хочу управлять операциями CRUD с данными этого профиля с помощью участников.Грамотность актера в Azure Service Fabric vs Project Orleans
В проекте Орлеана, я понимаю, что у меня будет одно зерна для каждого пользователя, так 1,000,000 виртуальных зерен одного и того же типа актера (который будет создан только если используются), и каждое зерно будет управлять информацией профиля один пользователь, сохраненный в его состоянии. По мере роста моих пользователей, так же как и количество зерен.
В Сервисная ткань, если я интерпретирую документацию правильно, она будет работать несколько иначе. У меня был бы тип состояния с состоянием, который управлял операциями CRUD с всеми пользователями, а для масштабируемости я бы разбил актера, предоставляя каждому разделу ответственность за подмножество пользовательских данных. Учитывая partition options, я не вижу очевидного способа реализовать его таким же мелкомасштабным способом, как Project Orleans.
Мне очень нравится подход в Проекте Орлеан. Актер просто обрабатывает данные для одного пользователя, а масштабируемость очевидна (больше пользователей равно больше зерен). Модель памяти также проста: один актер гидратируется по требованию с небольшим количеством состояний.
Кажется, реализация Service Fabric будет немного сложнее. Каждый актер имеет дело с набором пользователей, и для масштабируемости я должен заранее решить, сколько разделов я должен сделать, поскольку это не может быть изменено позже. Что касается модели памяти, объем данных, которыми управляет каждый актер, растет по мере роста числа пользователей.
Так что мой вопрос: правильно ли я понимаю, что актеры в Service Fabric просто более грубые, чем Project Orleans?
Update
Спасибо за ответы. В моей ошибке было думать, что раздел содержит экземпляр одного актера, который будет содержать и управлять состоянием для всех идентификаторов игроков в разделе. Это совершенно неправильно. Мичиэль указывает, что раздел содержит несколько экземпляров актеров, по одному на актерский идентификатор. Поэтому актеры могут быть реализованы так же, как и в Орлеанском проекте. Спасибо, спасибо.
Спасибо Мичиэлю, это прояснило для меня все. –