Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Edge cho phép bạn gọi một Proxy API từ một Proxy API khác. Tính năng này đặc biệt hữu ích khi bạn có một Proxy API chứa mã có thể tái sử dụng mà các proxy API khác có thể sử dụng.
Phản mẫu
Gọi một Proxy API từ một Proxy khác bằng HTTPTargetConnection trong điểm cuối mục tiêu hoặc mã JavaScript tuỳ chỉnh dẫn đến hop mạng bổ sung.
Gọi proxy 2 từ Proxy 1 bằng HTTPTargetConnection
Mã mẫu sau đây gọi Proxy 2 từ Proxy 1 bằng HTTPTargetConnection:
<!-- /antipatterns/examples/2-1.xml --> <HTTPTargetConnection> <URL>http://myorg-test.apigee.net/proxy2</URL> </HTTPTargetConnection>
Gọi Proxy 2 từ Proxy 1 từ mã JavaScript
Mã mẫu tiếp theo gọi Proxy 2 từ Proxy 1 bằng JavaScript:
<!-- /antipatterns/examples/2-2.xml --> var response = httpClient.send('http://myorg-test.apigee.net/proxy2); response.waitForComplete();
Luồng mã
Để hiểu lý do tại sao điều này vốn có bất lợi, chúng ta cần tìm hiểu lộ trình của một yêu cầu được minh hoạ trong sơ đồ dưới đây:
Như được mô tả trong biểu đồ, một yêu cầu truyền tải qua nhiều thành phần được phân phối, bao gồm Bộ định tuyến và Trình xử lý thư.
Trong các mã mẫu ở trên, việc gọi Proxy 2 từ Proxy 1 có nghĩa là yêu cầu phải được định tuyến thông qua tuyến truyền thống (tức là Bộ định tuyến > MP) trong thời gian chạy. Việc này cũng giống như gọi API từ một máy khách, do đó khiến nhiều bước nhảy mạng tăng thêm độ trễ. Các bước nhảy này không cần thiết khi xem xét rằng yêu cầu Proxy 1 đã "tiếp cận" nghị sĩ
Tác động
Việc gọi một Proxy API từ một Proxy API khác sẽ làm phát sinh những bước nhảy mạng không cần thiết, đó là yêu cầu phải được chuyển từ một Trình xử lý thư tới một Trình xử lý thư khác.
Phương pháp hay nhất
- Sử dụng chuỗi proxy
để gọi một Proxy API từ một Proxy API khác. Tạo chuỗi proxy
hiệu quả vì nó sử dụng kết nối cục bộ để tham chiếu điểm cuối mục tiêu (một Proxy API khác).
Mã mẫu cho thấy chuỗi proxy bằng LocalTargetConnection trong điểm cuối của bạn định nghĩa:
<!-- /antipatterns/examples/2-3.xml --> <LocalTargetConnection> <APIProxy>proxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Proxy API đã gọi sẽ được thực thi trong cùng một Bộ xử lý thông báo; nhờ đó, tránh được hop mạng như trong hình sau: