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

OSCHINA-MIRROR/willbeahero-HXAPIGate

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

Обновление

  • В настоящее время:

    • добавлен функционал прерывания соединения (Hystrix), а также усилены меры безопасности для новых маршрутов.

Концепция

HXAPIGate (китайское название: «Синьсинь API шлюз») — если вам нравится проект, пожалуйста, поставьте ему звезду. HXAPIGate — это высокопроизводительный API-шлюз, разработанный на основе Netty и Shiro. Он предназначен для управления доступом к микросервисам RESTful с детализированным управлением правами доступа. Поддерживает протоколы HTTP, Dubbo и другие. Авторские права на данное программное обеспечение принадлежат первоначальному автору. Изображение

Особенности программного обеспечения

В настоящее время большинство систем авторизации ограничиваются контролем доступа к самим ресурсам API, не обеспечивая детального контроля над правами доступа. HXAPIGate решает эту проблему, комбинируя bootshiroPro и реализуя модель авторизации для «ресурса API + метода запроса». Например: Новые четыре интерфейса:

Интерфейс Метод запроса
/user/list GET
/user/list POST
/user/list DELETE
/user/list PUT

В традиционной модели авторизации эти четыре интерфейса рассматриваются как один и тот же ресурс, и третьи стороны получают доступ ко всем методам. Однако с помощью HXAPIGate можно отдельно авторизовать каждый ресурс. Например, если авторизован только метод GET для /user/list, третьи стороны не смогут получить доступ к методам POST, DELETE и PUT для того же ресурса.

MECHA — робот

Синьсинь шлюз представляет собой реализацию концепции микросервисной архитектуры с использованием идеи MECHA. Как показано на рисунке, он описывает взаимосвязь между микросервисами и Синьсинь шлюзом. Зелёная зона внутри представляет область бизнес-ориентированных микросервисов, а область Синьсинь шлюза представляет внешнюю область распределённых функций. Из рисунка видно, что микросервисы не должны учитывать какие-либо распределённые функции и не должны внедрять в жизненный цикл сервисов какие-либо сторонние распределённые компоненты (например, Spring Cloud). После публикации нового бизнес-микросервиса Синьсинь шлюз автоматически предоставляет все необходимые распределённые функции. Конечно, те, кто знаком с Service Mesh, заметят сходство, и в будущем Синьсинь шлюз будет превращён в промышленный sidecar, что является одной из моих целей.

Изображение

Почему не SpringCloud или Dubbo

  • Причина отказа от SpringCloud проста: если ваша компания только начинает свой путь и у неё нет унаследованных проблем, то SpringCloud может быть хорошим выбором. Но в некоторых случаях, даже если у компании нет унаследованных проблем, использование SpringCloud не рекомендуется (например, из-за высокой стоимости обучения).
  • Причина отказа от Dubbo заключается в том, что хотя HXAPIGate совместим с протоколом Dubbo, он не предоставляет внешние услуги Dubbo. Вместо этого он может выступать в качестве прокси для служб Dubbo и реализовывать распределённое управление потоком и прерывание обслуживания для служб Dubbo.

Документация проекта

Документация проекта доступна в Wiki проекта, где вы найдёте информацию о том, как использовать проект и настраивать маршруты. Если вам понравился проект, не забудьте поставить ему звезду! Спасибо!

Диаграмма процесса авторизации

Диаграмма процесса авторизации

Производительность

Отчёт о тестировании производительности при 2000 параллельных транзакциях (JDK 1.8, размер кучи JVM 512M) API шлюз 2000 одновременных тестов давления (jvm = 512m)

Структура развёртывания шлюза

HXAPIGate поддерживает кластерное развёртывание и обеспечивает распределённое ограничение потока, балансировку нагрузки и другие функции для проксируемых служб. При распределённом развёртывании рекомендуется развернуть кластер ZooKeeper для обнаружения узлов шлюза и платформы авторизации HXBootshiro. Распределённые функции, такие как распределённое ограничение потока и распределённая кэширование, полагаются на Ignite для обеспечения базовой функциональности. Изображение

Демонстрация операций

Главная страница (имя пользователя и пароль: admin/123456)

Изображение

Добавление категории интерфейса

Управление категориями интерфейсов — это способ группировки API-интерфейсов.

Изображение

Добавление интерфейса

Управляет основной информацией об API-интерфейсах, такой как маршруты, стратегии балансировки нагрузки, типы протоколов и т. д. Изображение Добавление интерфейса: Изображение

Авторизация интерфейса

Авторизация основана на ролях и позволяет отдельно управлять пользователями и интерфейсами. Изображение

Реализованные функции шлюза

  1. Управление авторизацией и аутентификацией.
  2. Настройка маршрута.
  3. Балансировка нагрузки маршрута (циклический перебор и взвешенное распределение).
  4. Поддержка протоколов HTTP и Dubbo.
  5. Ограничение распределённого потока для интерфейсов.
  6. Публикация Golden Eagle.
  7. Прерывание соединения для интерфейса.

Ход проекта

На данный момент управление API-интерфейсами в HXAPIGate в основном завершено, и основное внимание уделяется расширению поддержки протоколов прокси-серверов и исправлению ошибок шлюза. В то же время планируется расширить функции управления платформой и предоставить более разнообразные функции управления.

Связанные статьи

Благодарности

Комментарии ( 0 )

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

Введение

Хаосинь API-шлюз — высокопроизводительный API-шлюз с нулевым проникновением, разработанный на основе Netty и Shiro. Подходит для управления авторизацией ресурсов API в микросервисах REST. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/willbeahero-HXAPIGate.git
git@gitlife.ru:oschina-mirror/willbeahero-HXAPIGate.git
oschina-mirror
willbeahero-HXAPIGate
willbeahero-HXAPIGate
master