Этот раздел поможет вам настроить окружение шлюза.
В настоящее время для хранения метаданных используется Etcd. Для установки etcd обратитесь к окружению etcd.
Если вы хотите скомпилировать Gateway из исходного кода, вам потребуется окружение Golang. Требуется версия Go 1.11
и выше.
Makefile
Далее приведены команды, выполняемые в директории $GOPATH/src/github.com/fagongzi/gateway
.
make release_version='версионная строка'
# Linux
make release release_version='версионная строка'
# Darwin (Mac OS X)
make release_darwin release_version='версионная строка'
make docker release_version='версионная строка'
# для демонстрации, включая etcd, proxy, apiserver, ui
make docker release_version='версионная строка'
# только proxy
make docker release_version='версионная строка' with=proxy
# только etcd
make docker release_version='версионная строка' with=etcd
# apiserver с ui
make docker release_version='версионная строка' with=apiserver
make help
Gateway состоит из двух компонентов: ApiServer
и Proxy
.
ApiServer предоставляет сервис GRPC для управления метаданными шлюза.```bash $ ./apiserver --help Использование ./apiserver: -addr string Адрес точки входа клиента (по умолчанию "127.0.0.1:9091") -addr-store string Адрес хранилища (по умолчанию "etcd://127.0.0.1:2379") -crash string Файл логов аварийного отключения (по умолчанию "./crash.log") -discovery Публикация сервиса apiserver через discovery -log-file string Внешний файл логов. По умолчанию выводится в консоль. -log-level string Уровень логов, по умолчанию info (по умолчанию "info") -namespace string Пространство имён для изоляции окружения (по умолчанию "dev") -publish-lease int Период времени аренды публикации сервиса в секундах (по умолчанию 10) -publish-timeout int Период времени таймаута публикации сервиса в секундах (по умолчанию OnClickListener 30) -service-prefix string Префикс имени сервиса (по умолчанию "/services")
Параметр `discovery` используется для определения необходимости использования сервисного открытия для публикации внешних API, предоставляемых ApiServer.
Параметр `namespace` используется для изоляции нескольких окружений. Он должен совпадать с параметром `namespace` в `Proxy`.
## Прокси
Прокси — это единственный входной пункт для всех внутренних API, что является уровнем доступа к API.```bash
$ ./proxy --help
Использование ./proxy:
-addr string
Адрес: входная точка запроса HTTP (по умолчанию "127.0.0.1:80")
-addr-pprof string
Адрес: адрес pprof
-addr-rpc string
Адрес: входная точка запроса менеджера (по умолчанию "127.0.0.1:9091")
-addr-store string
Адрес: хранилище метаданных, поддерживающее etcd (по умолчанию "etcd://127.0.0.1:2379")
-crash string
Файл лога аварийного завершения работы. (по умолчанию "./crash.log")
-filter value
Плагин(фильтр): формат <название фильтра>[:путь к плагину][:путь к конфигу плагина]
-limit-body int
Ограничение(MB): размер тела запроса в мегабайтах (по умолчанию 10)
-limit-buf-read int
Ограничение(байты): размер буфера чтения в байтах (по умолчанию 2048)
-limit-buf-write int
Ограничение(байты): размер буфера записи в байтах (по умолчанию 1024)
-limit-conn int
Ограничение(количество): количество соединений на каждый сервер-источник (по умолчанию 64)
-limit-conn-idle int
Ограничение(секунды): время простоя соединений с серверами-источниками (по умолчанию 30)
-limit-conn-keepalive int
Ограничение(секунды): время жизни соединений с серверами-источниками (по умолчанию 60)
-limit-healthcheck int
Ограничение: количество рабочих процессов проверки состояния (по умолчанию 1)
-limit-healthcheck-interval int
Ограничение(секунды): интервал проверки состояния (по умолчанию 60)
-limit-timeout-read int
Ограничение(секунды): время ожидания ответа от серверов-источников (по умолчанию 30)
-limit-timeout-write int
Замечено, что последний параметр -limit-timeout-write
был перенесён на новую строку, но не завершен. Для корректной передачи информации следует либо добавить описание этого параметра, либо удалить его, если он не используется. Ограничение (секунды): время ожидания отправки данных на серверы-источники (по умолчанию 30)
-log-file string
Внешний файл лога. По умолчанию логируется в консоль.
-log-level string
Уровень логгирования, по умолчанию info (по умолчанию "info")
-namespace string
Неймспейс для изоляции окружения. (по умолчанию "dev")
-ttl-proxy int
TTL (секунды): прокси (по умолчанию 10)
-version
Показывает информацию о версии
```Параметр namespace
используется для изоляции нескольких окружений. Он должен совпадать с параметром `namespace` в `ApiServer`.
Мы используем три сервера etcd, один сервер ApiServer и три сервера Proxy как пример.
| ------------- | :-------------: | -----------: | | etcd кластер | 192.168.1.100, 192.168.1.101, 192.168.1.102 | | | Прокси | 192.168.1.200, 192.168.1.201, 192.168.1.202 | | | ApiServer | 192.168.1.203 |
./proxy --addr=192.168.1.200:80 --addr-rpc=192.168.1.200:9091 --addr-store=etcd://192.168.1.100:2379,192.168.1.101:2379,192.168.1.102:2379 --namespace=test
./proxy --addr=192.168.1.201:80 --addr-rpc=192.168.1.201:9091 --addr-store=etcd://192.168.1.100:2379,192.168.1.101:2379,192.168.1.102:2379 --namespace=test
./proxy --addr=192.168.1.202:80 --addr-rpc=192.168.1.202:9091 --addr-store=etcd://192.168.1.100:2379,192.168.1.101:2379,192.168.1.102:2379 --namespace=test
Доступные адреса API пользователям: 192.168.1.201:80, 192.168.1.202:80, 192.168.1.203:80
./apiserver --addr=192.168.1.203:9091 --addr-store=etcd://192.168.1.100:2379,192.168.1.101:2379,192.168.1.102:2379 --discovery --namespace=test
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )