
Фреймворк переключения функций для Java, обеспечивающий активацию функций во время выполнения, управление доступом на основе ролей, переключение на основе AOP, мониторинг, журналы аудита и веб-консоль с REST API.
FF4j — это реализация паттерна Feature Toggle.
Feature Toggle: Включайте и отключайте функции во время выполнения без развертываний. В коде реализуйте несколько путей, защищенных динамическими предикатами (if/then/else).
Ролевое переключение: Включайте функции не только с помощью флагов, но и управляйте доступом с помощью ролей и групп (Canary Release). Поддерживаются разные фреймворки, начиная с Spring Security.
Переключение на основе стратегий: Реализуйте пользовательские предикаты (шаблон «Стратегия») для оценки, включена ли функция. Некоторые предоставляются из коробки: белые/черные списки, на основе времени, на основе выражений. Подключайте внешние источники, например, движок правил Drools.
Переключение на основе AOP: Сохраняйте код чистым и читаемым: избегайте вложенных операторов if, используйте аннотации. Благодаря Spring AOP целевая реализация выбирается во время выполнения и, таким образом, управляется состояниями функций.
Мониторинг функций: Для каждого выполнения функции ff4j оценивает предикат, поэтому можно собирать и записывать события, метрики для построения красивых дашбордов или рисовать кривые использования функций с течением времени.
Журнал аудита: Каждое действие (создание, обновление, удаление, переключение) может быть отслежено и сохранено в журнале аудита для устранения неполадок. С управлением разрешениями (AuthorizationManager) можно идентифицировать пользователей.
Веб-консоль: Администрируйте FF4j (включая функции и свойства) через веб-интерфейс. Упакована как сервлет в библиотеку, вы сможете развернуть её в своих бэкенд-приложениях. Доступно почти 10 языков.
Широкий выбор баз данных: Наша гордость: мы поддерживаем более 20 технологий баз данных для хранения ваших функций, свойств и событий. Та же бизнес-модель, множество реализаций. Благодаря точкам расширения легко создать свою собственную.
Spring Boot Starter Импортируйте зависимость ff4j-spring-boot-starter в свои микросервисы, чтобы мгновенно получить веб-консоль и REST API. (Для использования в бэкенд-приложении. Теперь совместимо с Spring Boot 2x: 👉 ПРИМЕРЫ
REST API Управляйте FF4j через WEB API. Это способ использовать ff4j с другими языками, особенно с javascript-фронтендами. (Также используйте FeatureStoreHttp, чтобы микросервисы не подключались напрямую к БД.)
Свойства (CMDB) Храните не только статусы функций, но и любые значения свойств. Создавайте свойства, которые можно изменять во время выполнения. Интегрировано с наиболее используемыми фреймворками, такими как Spring, Archaius, commons-config или Consul.
Больше информации можно найти на ff4j.org или в справочной документации в wiki.
Ознакомьтесь с началом работы здесь
Главная страница
Функции
Мониторинг
Этот проект существует благодаря всем, кто вносит вклад. [Внести вклад].
Спасибо всем нашим сторонникам! 🙏 [Стать сторонником]
Поддержите этот проект, став спонсором. Ваш логотип появится здесь со ссылкой на ваш сайт. [Стать спонсором]
(Распределённый) кеш Оценка предикатов может создавать нагрузку на БД (высокий коэффициент обращений). ff4j предоставляет локальные и распределенные кеши для помощи. (Редактирование функции также сбрасывает кеш). Используя JSR-107, поддерживает большинство решений для кеширования.
Интерфейс командной строки Для автоматизации или если веб-порты могут быть заблокированы (вы знаете, production...), вы можете работать через SSH с помощью нашего интерфейса командной строки (CLI), нашей оболочки #devOps. Он взаимодействует напрямую с хранилищами.
JMX и MBeans Ограниченный набор операций можно выполнять через JMX. ff4j предоставляет некоторые MBeans для чтения метрик или переключения функций из внешних инструментов (Nagios...). Не все приложения основаны на вебе (пакеты, оболочки, автономные...).