Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Proxy API là một giao diện dành cho các ứng dụng khách để kết nối với các dịch vụ phụ trợ. Apigee Edge cung cấp nhiều cách để kết nối với các dịch vụ phụ trợ thông qua proxy API:
- TargetEndpoint để kết nối với mọi dịch vụ HTTP/HTTP, NodeJS hoặc được lưu trữ.
- Chính sách chú thích dịch vụ để gọi mọi dịch vụ bên ngoài trước hoặc sau khi máy chủ mục tiêu gọi trong TargetEndpoint.
- Mã tuỳ chỉnh được thêm vào chính sách JavaScript hoặc chính sách về Chú thích Java để kết nối với các dịch vụ phụ trợ.
Kết nối liên tục
Kết nối HTTP liên tục, còn được gọi là duy trì hoạt động HTTP hoặc sử dụng lại kết nối HTTP. Đây là một khái niệm cho phép Kết nối TCP để gửi và nhận nhiều yêu cầu HTTP/phản hồi, thay vì mở một kết nối mới cho mỗi cặp yêu cầu/phản hồi.
Apigee Edge sử dụng kết nối liên tục để giao tiếp với các dịch vụ phụ trợ. Duy trì kết nối tồn tại trong 60 giây theo mặc định. Tức là nếu một kết nối ở trạng thái rảnh trong nhóm kết nối cho hơn 60 giây thì kết nối sẽ đóng.
Bạn có thể định cấu hình khoảng thời gian chờ duy trì hoạt động thông qua thuộc tính có tên là keepalive.timeout.millis
,
được chỉ định trong cấu hình TargetEndpoint của proxy API. Ví dụ: duy trì
có thể đặt khoảng thời gian thành 30 giây cho một dịch vụ phụ trợ cụ thể trong TargetEndpoint.
Trong ví dụ bên dưới, keepalive.timeout.millis
được đặt thành 30 giây trong TargetEndpoint
cấu hình:
<!-- /antipatterns/examples/disable-persistent-connections-1.xml --> <TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties> </HTTPTargetConnection>Disable HTTP persistent (Reusable keep-alive) connections </TargetEndpoint>
Trong ví dụ trên, keepalive.timeout.millis
kiểm soát hành vi duy trì hoạt động cho một
dịch vụ phụ trợ cụ thể trong proxy API. Ngoài ra còn có một thuộc tính kiểm soát hành vi duy trì hoạt động
cho tất cả các dịch vụ phụ trợ trong tất cả proxy. HTTPTransport.keepalive.timeout.millis
có thể định cấu hình trong thành phần Trình xử lý thư. Thuộc tính này cũng có giá trị mặc định là 60
giây. Việc sửa đổi thuộc tính này cũng sẽ ảnh hưởng đến hành vi kết nối duy trì hoạt động giữa
Apigee Edge và tất cả các dịch vụ phụ trợ trong tất cả proxy API.
Phản mẫu
Tắt các kết nối liên tục (duy trì) bằng cách đặt thuộc tính keepalive.timeout.millis
về 0 trong cấu hình TargetEndpoint của một Proxy API cụ thể hoặc đặt giá trị
Bạn không nên đặt HTTPTransport.keepalive.timeout.millis
thành 0 trên Trình xử lý thư
thì sẽ ảnh hưởng đến hiệu suất.
Trong ví dụ bên dưới, cấu hình TargetEndpoint sẽ tắt các kết nối liên tục (duy trì hoạt động)
dành cho một dịch vụ phụ trợ cụ thể bằng cách đặt keepalive.timeout.millis
thành 0:
<!-- /antipatterns/examples/disable-persistent-connections-2.xml --> <TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="keepalive.timeout.millis">0</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
Nếu tính năng Duy trì kết nối đang hoạt động bị tắt đối với một hoặc nhiều dịch vụ phụ trợ, thì Edge phải mở một kết nối mới cho mỗi yêu cầu mới tới(các) dịch vụ phụ trợ mục tiêu. Nếu phần phụ trợ là HTTP, Edge cũng sẽ thực hiện bắt tay SSL cho từng yêu cầu mới, bổ sung thêm độ trễ của các yêu cầu API.
Tác động
- Tăng thời gian phản hồi tổng thể cho các yêu cầu API vì Apigee Edge phải mở một kết nối mới và thực hiện bắt tay SSL cho mọi yêu cầu mới.
- Kết nối có thể bị hết khi điều kiện lưu lượng truy cập cao, vì cần chút thời gian để huỷ kết nối trở lại hệ thống.
Phương pháp hay nhất
- Các dịch vụ phụ trợ phải tuân thủ và xử lý kết nối HTTP liên tục theo tiêu chuẩn HTTP 1.1 chuẩn.
- Các dịch vụ phụ trợ phải phản hồi bằng tiêu đề
Connection:keep-alive
nếu có thể để xử lý các kết nối bền vững (duy trì hoạt động). - Các dịch vụ phụ trợ phải phản hồi bằng tiêu đề
Connection:close
nếu không thể xử lý các kết nối liên tục.
Việc triển khai mẫu này sẽ đảm bảo rằng Apigee Edge có thể tự động xử lý các kết quả ổn định hoặc không ổn định kết nối với các dịch vụ phụ trợ mà không yêu cầu thay đổi proxy API.