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