Имитация нескольких точек принятия решений (PDP) в распределенной среде - PullRequest
1 голос
/ 08 июня 2019

Давайте рассмотрим сценарий, когда субъекты будут запрашивать доступ ко многим объектам в секунду. Большая нагрузка на один PDP будет означать увеличение времени ожидания и чтения / записи на запрос.

До сих пор я использовал проект AuthzForce Core для настройки одного PDP, для которого у меня есть цикл for, отправляющий несколько запросов (это можно сделать одновременно, используя потоки). Однако это не похоже на подходящую установку для оценки моих политик в распределенной среде.

Есть ли способ, которым это можно сделать? Возможно, используя AuthzForce Server ?

Редактировать

Я запускаю приложение Java, которое использует Authzforce Core. Программа создает экземпляр PDP, который загружает один документ политики, а затем цикл for выполняет несколько запросов. Все это делается локально в самой программе.

Ответы [ 2 ]

1 голос
/ 23 июня 2019

Трудно помочь улучшить производительность здесь, не глядя на код или архитектуру, но я могу дать несколько общих советов (некоторые из них могут быть очевидны для вас, но просто быть внимательными):

  1. Поскольку PDP встроен в ваше Java-приложение, я предполагаю (или убедитесь, что вы используете), что вы используете AuthzForce native Java API (пример в README), который является наиболее эффективнымспособ оценки.

  2. Я также предполагаю, что вы (повторно) используете один и тот же экземпляр PDP (BasePdpEngine) на протяжении всего жизненного цикла вашего приложения.Он должен быть поточно-ориентированным.

  3. Чтобы оценивать несколько запросов одновременно, вы можете попробовать метод evaluate(List) механизма PDP ( javadoc ) вместообычно evaluate(DecisionRequest), что в некоторых случаях быстрее.

  4. Если под "распределенной средой" вы подразумеваете, что у вас может быть несколько экземпляров вашего Java-приложения, развернутых в разных местах, поэтому несколькоPDP, правильные настройки зависят от того, где и как вы загружаете документ политики: локальный файл, удаленная база данных и т. Д. Смотрите мой последний комментарий.Как уже упоминалось в ответе Рафаэля Систо, вы можете использовать некоторые рекомендации из раздела «Высокая доступность» руководства по установке AuthzForce Server.

1 голос
/ 11 июня 2019

Сервер Authzforce имеет опцию высокой доступности: https://github.com/authzforce/fiware/blob/master/doc/InstallationAndAdministrationGuide.rst#high-availability

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

...