2

Могу ли я использовать Azure Service Fabric надежные субъекты с точки зрения состояния для проблем с географическим отображением? Предположим, у меня есть актер, представляющий событие. Это событие создается пользователем, который установил такое событие на карте. Многие пользователи могут создавать множество событий. Каждое событие, представляющее актер, хранит гео координаты и другое состояние. Это приведет к тому, что на карте могут быть миллионы событий.Географическое отображение с объектами с объектами состояния

Итак, теперь я хочу иметь субъект группировки, представляющий актеры событий, основанные на области карты, или на основе прямоугольника координат. Актер группировки хранит список всех участников событий в этой области карты. В связи с проблемами производительности, возможно ли и рекомендуется динамически создавать такого группирующего актера? Область будет определяться вводом пользователем.

ответ

1

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

Возможно, было бы проще и эффективнее использовать Reliable Dictionary в пределах Reliable Service. Каждая координата и любые связанные данные могут быть записью в словаре. Вы можете перечислять, выполнять запросы LINQ и обычно программировать, как и обычный словарь.

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

+0

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

Смежные вопросы