Во-первых, что такое шлюз API?
Как показано выше, шлюз API действует как единая точка входа для всех клиентов.
Преимущества использования API-шлюза:
- Убедитесь, что клиент не знает, как приложение разделено на несколько микросервисов.
- Убедитесь, что на клиента не влияет расположение экземпляра службы.
- Предоставляем оптимальный API для каждого клиента.
- Сократите количество запросов/обратных передач. Например, шлюз API гарантирует, что клиент извлекает данные из нескольких служб за один цикл. Меньшее количество запросов означает, что рабочая нагрузка ниже, а пользовательский опыт лучше. Шлюз API необходим для мобильных приложений.
- Преобразование логики вызова нескольких служб от клиента к вызову из шлюза API упрощает весь клиент.
Что такое OpenResty?
"OpenResty is not an Nginx fork. It is just a software bundle"
То есть Openresty — это программный пакет на основе Nginx, который содержит различные доступные библиотеки, перейдите по ссылкеawesome-resty
OpenResty
Как сделать его динамичным?
При обнаружении службы используется следующееConsul
NININX NORMAL Использование в качестве шлюза API требует конфигурации, когда задний конец экземпляра плюс, о перезагрузке Nginx, чтобы вступить в силу
upstream test {
server 192.168.0.1;
server 192.168.0.2;
}
Тогда все в порядке, пока восходящий поток становится динамически программируемым.При добавлении экземпляра бэкэнда он вступит в силу автоматически без перезагрузки.
Код ссылки
- Слардар, который снова стреляет в облака, ps: Tucao о названии "Сларда"... Не слишком ли много играет эта Дота?
- Модуль Weibo nginx-upsync
В следующем модуле nginx-upsync можно установить каждые n секунд синхронизацию kv или Service в Consul
http {
upstream test {
# fake server otherwise ngx_http_upstream will report error when startup
server 127.0.0.1:11111;
# all backend server will pull from consul when startup and will delete fake server
upsync 127.0.0.1:8500/v1/kv/upstreams/test upsync_timeout=6m upsync_interval=500ms upsync_type=consul strong_dependency=off;
upsync_dump_path /usr/local/nginx/conf/servers/servers_test.conf;
}
upstream bar {
server 127.0.0.1:8090 weight=1 fail_timeout=10 max_fails=3;
}
server {
listen 8080;
location = /proxy_test {
proxy_pass http://test;
}
location = /bar {
proxy_pass http://bar;
}
location = /upstream_show {
upstream_show;
}
}
}
Наконец, разработка OpenResty основана на lua или C, и с помощью lua относительно легко разрабатывать высокопроизводительные сервисы.Фрагменты кода, включенные в следующие ссылки, используют openresty для объединения нескольких серверных запросов на получение/отправку.
Используйте openresty для объединения нескольких внутренних запросов API.