Начните работу с системой Kong Gateway, разработанной на основе openresty, за три минуты

API

Как член семейства бакетов, отличных от Java, kong широко используется в системах шлюзов в области, отличной от Java.

Используйте докер, чтобы запустить конг одним щелчком мыши

Справочный проект:GitHub.com/Конг/докер…

Процесс запуска выглядит следующим образом:

git clone https://github.com/Kong/docker-kong.git
cd docker-kong/compose
docker-compose up -d

Посмотреть эффект операции:

Вы можете видеть, что Kong контролирует 4 порта

порт эффект
8000 http-шлюз
8443 https-шлюз
8001 API управления
8444 админ апи для https

Операции, связанные со службами, такие как службы регистрации, используют API управления и общие запросы API к шлюзу http или https.

регистрационная служба

Например, сервисhttps://jsonplaceholder.typicode.com/todos/зарегистрироваться в конге

curl -i -X POST \
  --url http://localhost:8001/services/ \
  --data 'name=note-service' \
  --data 'url=https://jsonplaceholder.typicode.com/todos/'

На данный момент сервис зарегистрирован, но зайдяhttp://127.0.0.1:8000/note-service/3недоступен

Это потому, что нет "http://127.0.0.1"Этот хост сопоставляется с сервисом заметок

узел карты

curl -i -X POST \
  --url http://localhost:8001/services/note-service/routes \
  --data 'hosts[]=127.0.0.1'

Проверьте эффект операции

Вы можете видеть, что конг-гейт успешно проксировал это"jsonplaceholder.typicode.com/todos/"Бэкэнд-сервис

Обнаружение работоспособности службы

Ссылка на поле:docs.emptylogistics.com/1.1.small/и алтай…

upstream.json

{
    "name": "mynote",
    "healthchecks": {
        "active": {
            "concurrency": 10,
            "healthy": {
                "http_statuses": [ 200, 302 ],
                "interval": 0,
                "successes": 0
            },
            "http_path": "/",
            "timeout": 1,
            "unhealthy": {
                "http_failures": 0,
                "http_statuses": [ 429, 404, 500, 501,
                                   502, 503, 504, 505 ],
                "interval": 0,
                "tcp_failures": 0,
                "timeouts": 0
            }
        },
        "passive": {
            "healthy": {
                "http_statuses": [ 200, 201, 202, 203,
                                   204, 205, 206, 207,
                                   208, 226, 300, 301,
                                   302, 303, 304, 305,
                                   306, 307, 308 ],
                "successes": 0
            },
            "unhealthy": {
                "http_failures": 0,
                "http_statuses": [ 429, 500, 503 ],
                "tcp_failures": 0,
                "timeouts": 0
            }
        }
    },
    "slots": 10
}
curl -i -X POST \
  -H "Content-Type: application/json" \
  -d "@upstream.json" \
  --url http://localhost:8001/upstreams

Эффект операции следующий

Интерфейс интерфейса

Использование вышеописанного завитка для управления конгом не сложно, но выглядит не интуитивно, можно использовать визуальный интерфейс конга конга

Команда запуска докера одним щелчком мыши выглядит следующим образом.

docker run -p 1337:1337 \
             --rm \
             --name konga \
             -e "NODE_ENV=development" \
             -e "TOKEN_SECRET={{somerandomstring}}" \
             pantsel/konga

Эффект следующий

Видно, что это очень интуитивно

использованная литература

  1. GitHub.com/Конг/докер…
  2. docs.emptylogistics.com/1.1.small/groups…
  3. docs.emptylogistics.com/1.1.small/groups…
  4. docs.emptylogistics.com/1.1.small/и алтай…
  5. docs.emptylogistics.com/1.1.small/admin…