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

OSCHINA-MIRROR/fagongzi-gateway

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_CN.md 7.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 13.03.2025 10:28 9c7636b

Gitter Статус сборки Отчет Go Report Card

Gateway/English

Gateway — это RESTful API-шлюз, основанный на протоколе HTTP. Он может использоваться в качестве единой точки входа для API.

Учебник

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

Обратите внимание

Убедитесь, что ваша версия Go находится на уровне OnClickListener 1.10 или выше. При компиляции с помощью более ранней версии Go возникает ошибка undefined "math/rand".Shuffle. Ссылка на StackOverflow

Возможности

  • Контроль трафика (уровень сервера или уровня API)
  • Отключение (уровень сервера или уровня API)
  • Балансировка нагрузки
  • Поиск сервисов
  • Механизм плагинов
  • Роутинг (распределение трафика, копирование трафика)
  • Агрегация API
  • Проверка параметров API
  • Управление доступом к API (белый список, черный список)
  • Установленные значения ответа по умолчанию для API
  • Добавочные значения ответа для API
  • Кэширование результатов API
  • Авторизация JWT
  • Импорт метрик API в Prometheus
  • Повтор попыток при ошибке API
  • Проверка состояния сервера
  • Управляемые API (GRPC, Restful)
  • Поддержка WebSocket
  • Поддержка онлайн миграции данных## Docker

Для использования этого руководства требуется базовое понимание работы с Docker. Вы можете прочитать эту [книгу][2] или обратиться к [официальной документации][1].

Быстрое начало

Используйте команду docker pull fagongzi/gateway, чтобы скачать образ Docker. Запустите его с помощью команды docker run -d -p 9093:9093 -p 80:80 -p 9092:9092 fagongzi/gateway. После запуска образа экспортируются три порта:

  • 80

    Прокси-сервер для HTTP, который используется непосредственно для обслуживания конечных пользователей.

  • 9092

    Порт GRPC внешнего сервера API.

  • 9093

    Порт HTTP RESTful внешнего сервера API. Для доступа к WEBUI используйте адрес http://127.0.0.1:9093/ui/index.html.

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

  • GW_PROXY_OPTS

    Поддерживает все параметры, доступные через proxy --help;

  • API_SERVER_OPTS

    Поддерживает все параметры, доступные через apiserver --help;

  • ETCD_OPTS

    Поддерживает все параметры из etcd --help;

Доступные Docker-образы

  • fagongzi/gateway

    Этот образ является быстрозапускающим, содержащим три компонента: etcd, proxy, apiserver. Используется только для быстрой проверки, не предназначен для использования в продакшне.

  • fagongzi/proxy

    Компонент proxy, готов к использованию в продакшне.* fagongzi/apiserver

    Компонент apiserver, который готов к использованию в продакшн.

Архитектура

WebUI

Доступные проекты WebUI для Gateway:

Компоненты

Gateway состоит из компонентов proxy и apiserver

Proxy

Proxy — это компонент Gateway, предоставляющий услуги конечному пользователю. Proxy представляет собой бессостоятельную ноду, которую можно развернуть несколько раз для поддержки большего объема трафика, Подробнее.

ApiServer

ApiServer предоставляет GRPC и RESTful для управления метаданными. ApiServer также интегрирован с официальным WebUI, Подробнее.

Концепции в Gateway

Сервер

Сервер — это реальный backend сервис, Подробнее.

Кластер

Кластер — это логическая концепция, представляющая собой набор серверов, предоставляющих одинаковый сервис. Выбор доступного сервера осуществляется согласно политике балансировки нагрузки, Подробнее.

API

API — это ключевое понятие Gateway, где мы можем поддерживать внешние API, а также правила распределения, агрегации и соответствия URL, Подробнее.### Роутинг Роутинг — это стратегия маршрутизации, которая распределяет трафик на основе информации из HTTP-запроса (cookies, query string, headers, path) на указанный кластер. Эта функциональность позволяет реализовать A/B тестирование и привлечение трафика онлайн, Подробнее.## Участие в разработке Подробнее

Способы связи — WhatsApp

Поддержка

Открытый исходный код требует усилий, если этот проект помог вам, вы можете угостить меня чашкой кофе, спасибо!

WhatsApp

AliPay

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

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

1
https://api.gitlife.ru/oschina-mirror/fagongzi-gateway.git
git@api.gitlife.ru:oschina-mirror/fagongzi-gateway.git
oschina-mirror
fagongzi-gateway
fagongzi-gateway
master