1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/palading_cr-clivia

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 8.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 15:18 203b93b

clivia — это основанный на spring webflux расширяемый, высокопроизводительный, эластичный и реактивный api gateway

clivia_V0.0.1


Архитектура

image

Модули

  • clivia-admin-core: модуль для управления конфигурацией бэкенда шлюза;

  • clivia-client-core: основной модуль шлюза;

  • clivia-example: готовый к использованию экземпляр;

  • clivia-event: входной модуль системы событий;

  • clivia-api: базовый информационный модуль API;

  • clivia-cache: системный модуль кэширования;

  • clivia-dynamic: динамический модуль загрузки файлов на основе groovy;

  • clivia-filter: расширяемое системное фильтрующее множество модулей;

  • clivia-invoke: расширяемое множество системных исполнительных модулей;

  • clivia-loadbalance: встроенный расширяемый модуль стратегии балансировки нагрузки;

  • clivia-assembly-base: промежуточный системный модуль (redis, metrics, httpClient);

  • clivia-spi: системный модуль SPI;

  • clivia-support: системный общий поддерживающий модуль.


Особенности

  • Поддержка различных способов настройки API, таких как базы данных, файлы и визуальные интерфейсы (планируется). Поддерживает сервисы на уровне системы и интерфейса.
  • Система имеет функции безопасности, такие как проверка подлинности, чёрный список, подпись, ограничение потока, перезапись URL, прерывание, mock, заголовок, переключатель системы и другие распространённые фильтры. Также поддерживает RPC-трансляцию HTTP, Dubbo, Spring Cloud и WebSocket.
  • Система обладает высокой эластичностью и может загружать код на основе Groovy без остановки работы.
  • Модульная структура ясна, а расширяемость сильна с полным набором механизмов расширения.
  • Поддерживает высокую доступность кластера и постепенное развёртывание.

Система

1. Конфигурация API

  • Конфигурацию базы данных см. в /script/apiCconfig.docx.
  • Для конфигурации файла см. /script/fileConfig/fileConfig.md.
  • Веб-конфигурация (в планах).

2. Кэш и синхронизация данных

  • После запуска фреймворка spring система вызовет модуль clivia-event, который загрузит метод initCache класса DefaultCliviaCacheManager в модуле clivia-cache. Затем данные будут помещены в CliviaCacheFactory для кэширования. После завершения первого этапа загрузки система будет периодически обновлять кэш.
  • В настоящее время существует три реализации CliviaCacheFactory: CliviaStandandCacheFactory (прямое обновление данных в памяти), CliviaLocalCacheFactory (раздельное обновление памяти) и CliviaRemoteCacheFactory (отложенное удалённое обновление кэша).
  • Механизм синхронизации данных конфигурации API/чёрного списка: модуль clivia-cache отправляет HTTP-запрос модулю clivia-admin, который сначала получает данные из локального кэша и отвечает на запрос.

3. Эластичность

  • Во время работы шлюза можно поместить протестированный файл кода Groovy в каталог сканирования без остановки системы. Система автоматически сканирует каталог и загружает файлы.
  • Текущая поддержка включает в себя эластичность фильтров и исполнителей. Если требуется настройка, обратитесь к clivia-dynamic.

4. Фильтры

  • Существует множество встроенных фильтров шлюза, включая проверку безопасности, чёрные списки, подписи, ограничения потока, переписывание URL, прерывания, заголовки, макеты и переключатели системы. В будущем планируется добавить больше фильтров.
  • Настройка: 1) добавьте новый модуль фильтра и реализуйте интерфейс CliviaFilter, затем перекомпилируйте; 2) используйте динамическую загрузку файлов для расширения настроек.

5. Исполнители

  • Исполнители обеспечивают различные услуги RPC для нисходящих сервисов. В настоящее время поддерживается Dubbo, HTTP/HTTPS, Spring Cloud и WebSocket, и в будущем можно добавить больше исполнителей.
  • Настройка аналогична настройке фильтров.

6. Безопасный дизайн

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

Начало работы

1. Клонирование проекта

 git clone https://gitee.com/palading_cr/clivia.git
 git clone https://github.com/palading123/clivia.git

2. Установка

 mvn clean install

3. Проверка

  • Файл конфигурации JSON должен находиться на том же компьютере, что и clivia-gateway-admin. Это также относится к кластерной среде. Убедитесь, что clivia-gateway-admin имеет разрешение на чтение файла конфигурации.
  • Каталог файлов конфигурации JSON — D://opt//clivia//gateway//. Свойства clivia.admin.config.absoluteFilePath в файле конфигурации clivia-gateway-admin (application.properties) должны быть установлены в D://opt//clivia//gateway//.
  • Атрибут clivia.server.config.cliviaAdminUrl в файле конфигурации модуля clivia-gateway-client должен быть установлен на адрес clivia-gateway-admin.
 clivia.server.config.cliviaAdminUrl=http://localhost:1023

4. Запуск

  • Сначала запустите административный и клиентский подпроекты clivia-example. По умолчанию порты — 1023 и 8099 соответственно.
 java -jar clivia-gateway-admin-0.0.1.jar
 java -jar clivia-gateway-client-0.0.1.jar
  • При успешном запуске клиента появится логотип clivia:
 _____ _      _______      _______
/ ____| |    |_   _\ \    / /_   _|   /\
| |    | |      | |  \ \  / /  | |    /  \
| |    | |      | |   \ \/ /   | |   / /\ \
| |____| |____ _| |_

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/palading_cr-clivia.git
git@api.gitlife.ru:oschina-mirror/palading_cr-clivia.git
oschina-mirror
palading_cr-clivia
palading_cr-clivia
main