Aby poradzić sobie z architekturą mikrousług, jest często używany razem z odwrotnym serwerem proxy (takim jak nginx lub apache httpd), aw przypadku problemów związanych z cięciem krzyżowym używany jest wzorzec bramy API . Czasami Reverse proxy wykonuje pracę bramy API.
Dobrze będzie zobaczyć wyraźne różnice między tymi dwoma podejściami. Wygląda na to, że potencjalną korzyścią z użycia bramy interfejsu API jest wywoływanie wielu mikrousług i agregowanie wyników. Wszystkie inne obowiązki API Gateway można zaimplementować za pomocą Reverse Proxy, takich jak:
- Uwierzytelnianie (można to zrobić za pomocą skryptów Nginx LUA);
- Bezpieczeństwo transportu. To samo zadanie Reverse Proxy;
- Równoważenie obciążenia
- ....
Na tej podstawie powstaje kilka pytań:
- Czy ma sens jednoczesne używanie bramy API i Reverse proxy (na przykład żądanie-> brama API-> reverse proxy (nginx) -> konkretna usługa mictoservice)? W jakich przypadkach?
- Jakie inne różnice można zaimplementować za pomocą bramy interfejsu API, a których nie można zaimplementować przez Reverse proxy i odwrotnie?