Bạn đang xem tài liệu về Apigee Edge.
Tham khảo tài liệu về Apigee X. thông tin
Tài liệu này giải thích cách định cấu hình thời gian chờ I/O trên Bộ định tuyến của Apigee Edge.
Thời gian chờ I/O trên Bộ định tuyến biểu thị thời gian mà Bộ định tuyến chờ để nhận phản hồi từ Bộ xử lý thông báo, sau khi thiết lập kết nối và gửi yêu cầu đến Bộ xử lý thông báo. Giá trị mặc định của thời gian chờ I/O trên Bộ định tuyến là 57 giây.
Bạn có thể tăng hoặc giảm thời gian chờ I/O cho Bộ định tuyến từ giá trị mặc định 57 giây tuỳ theo nhu cầu. Bạn có thể định cấu hình ứng dụng này theo các cách sau:
- Trên máy chủ ảo
- Trên bộ định tuyến
Các thuộc tính sau đây kiểm soát thời gian chờ I/O trên Bộ định tuyến:
Tên thuộc tính | Vị trí | Mô tả |
---|---|---|
proxy_read_timeout
|
Máy chủ ảo |
Chỉ định thời gian tối đa mà Bộ định tuyến chờ nhận phản hồi từ Bộ xử lý thông báo sau khi thiết lập kết nối và gửi yêu cầu đến Bộ xử lý thông báo. Nếu không có phản hồi từ Bộ xử lý thông báo trong khoảng thời gian chờ này thì Bộ định tuyến sẽ hết thời gian chờ. Theo mặc định, thuộc tính này lấy giá trị được đặt cho thuộc tính Nếu thuộc tính này được sửa đổi với giá trị thời gian chờ mới cho một máy chủ ảo cụ thể, thì chỉ những proxy API sử dụng máy chủ ảo cụ thể đó mới bị ảnh hưởng. |
conf_load_balancing_load.balancing.driver.proxy.read.timeout
|
Bộ định tuyến |
Chỉ định thời gian tối đa mà Bộ định tuyến chờ nhận phản hồi từ Bộ xử lý thông báo sau khi thiết lập kết nối và gửi yêu cầu đến Bộ xử lý thông báo. Nếu không có phản hồi từ Bộ xử lý thông báo trong khoảng thời gian chờ này thì Bộ định tuyến sẽ hết thời gian chờ. Thuộc tính này được dùng cho tất cả máy chủ ảo trên Bộ định tuyến này. Giá trị mặc định của thuộc tính này là 57 giây. Bạn có thể sửa đổi thuộc tính này như giải thích trong phần Định cấu hình thời gian chờ I/O trên Bộ định tuyến bên dưới hoặc bạn có thể ghi đè giá trị này bằng cách đặt thuộc tính Bạn có thể đặt khoảng thời gian cho thuộc tính này thay vì giây bằng cách sử dụng ký hiệu sau: ms: milliseconds s: seconds (default) m: minutes h: hours d: days w: weeks M: months (length of 30 days) y: years (length of 365 days) |
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout
|
Bộ định tuyến |
Chỉ định tổng thời gian Bộ định tuyến chờ nhận phản hồi từ tất cả các Bộ xử lý thông báo sau khi thiết lập kết nối và gửi yêu cầu đến từng Bộ xử lý thông báo. Điều này áp dụng khi quá trình cài đặt Edge có nhiều Bộ xử lý thông báo và tính năng thử lại sẽ được bật khi xảy ra lỗi. Mã này có giá trị là một trong những chỉ số sau:
Tương tự như với thuộc tính |
Trước khi bắt đầu
Trước khi làm theo các bước trong tài liệu này, hãy đảm bảo bạn hiểu rõ những chủ đề sau:
- Nếu bạn chưa hiểu rõ về các Thuộc tính của máy chủ ảo, hãy đọc Tài liệu tham khảo về thuộc tính máy chủ lưu trữ ảo.
- Nếu bạn chưa hiểu rõ về cách định cấu hình các thuộc tính cho Edge trên đám mây riêng tư, hãy đọc phần Cách định cấu hình Edge.
- Đảm bảo rằng bạn làm theo đề xuất Các phương pháp hay nhất để định cấu hình thời gian chờ I/O.
Định cấu hình thời gian chờ I/O trong máy chủ ảo
Phần này giải thích cách định cấu hình thời gian chờ I/O trong máy chủ ảo được liên kết với một tổ chức và môi trường. Bạn có thể định cấu hình thời gian chờ I/O trong máy chủ ảo thông qua thuộc tính proxy_read_timeout
. Thuộc tính này biểu thị giá trị thời gian chờ I/O tính bằng giây.
Bạn có thể định cấu hình máy chủ ảo bằng một trong các phương thức sau:
- Giao diện người dùng Edge
- API Edge
Giao diện người dùng Edge
Để định cấu hình máy chủ ảo bằng giao diện người dùng Edge, hãy làm như sau:
- Đăng nhập vào Edge UI.
- Chuyển đến phần Quản trị > Máy chủ ảo.
- Chọn Môi trường cụ thể nơi bạn muốn thực hiện thay đổi này.
- Chọn máy chủ ảo cụ thể mà bạn muốn định cấu hình giá trị thời gian chờ I/O mới.
- Trong Thuộc tính, hãy cập nhật giá trị Thời gian chờ đọc proxy tính bằng giây.
Ví dụ: nếu bạn muốn thay đổi thời gian chờ thành 120 giây, hãy nhập 120 như trong hình sau:
- Lưu thay đổi.
API Edge
Để định cấu hình máy chủ ảo bằng Edge API, hãy làm như sau:
- Lấy cấu hình máy chủ ảo hiện tại bằng cách sử dụng API
Tải máy chủ ảo như minh hoạ bên dưới:
Người dùng Đám mây công khai
curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
Người dùng Đám mây riêng tư
curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
Trong trường hợp:
{organization-name} là tên của tổ chức
{environment-name} là tên của môi trường
{virtualhost-name} là tên của máy chủ ảo
Cấu hình virtualhost mẫu
{ "hostAliases": [ "api.myCompany,com" ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
- Thêm thuộc tính
proxy_read_timeout
vào tải trọng JSON của cấu hình máy chủ ảo hiện có trongproperties
với giá trị tính bằng giây.Ví dụ: để thay đổi thời gian chờ I/O thành 120 giây, hãy thêm khối mã
properties
như minh hoạ dưới đây:Cấu hình máy chủ ảo cập nhật mẫu
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "proxy_read_timeout", "value": "120" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
- Lưu cấu hình máy chủ ảo đã cập nhật vào tệp. Ví dụ:
virtualhost-payload.json
- Cập nhật cấu hình
virtualhost
theo thay đổi bằng cách sử dụng API Cập nhật máy chủ ảo như sau:Người dùng Đám mây công khai
curl -v -X POST Content-Type: application/json https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
Người dùng Đám mây riêng tư
curl -v -X POST Content-Type: application/json http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
Trong trường hợp:
{organization-name} là tên của tổ chức
{environment-name} là tên của môi trường
{virtualhost-name} là tên của máy chủ ảo
Xác minh thời gian chờ I/O trên máy chủ ảo
Phần này giải thích cách xác minh rằng thời gian chờ I/O đã được sửa đổi thành công trên máy chủ ảo bằng cách sử dụng Edge API.
- Thực thi API
Tải máy chủ ảo để lấy cấu hình
virtualhost
như đoạn mã bên dưới:Người dùng Đám mây công khai
curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
Người dùng Đám mây riêng tư
curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
Trong trường hợp:
{organization-name} là tên của tổ chức
{environment-name} là tên của môi trường
{virtualhost-name} là tên của máy chủ ảo
- Xác minh rằng thuộc tính
proxy_read_timeout
đã được đặt thành giá trị mới.Cấu hình máy chủ ảo cập nhật mẫu
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "proxy_read_timeout", "value": "120" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
Trong ví dụ trên, hãy lưu ý rằng
proxy_read_timeout
đã được đặt với giá trị mới là 120 giây. - Nếu bạn vẫn thấy giá trị cũ cho
proxy_read_timeout,
, hãy xác minh rằng bạn đã làm theo đúng tất cả các bước trong bài viết Định cấu hình thời gian chờ I/O trong máy chủ ảo một cách chính xác. Nếu bạn đã bỏ lỡ bất kỳ bước nào, hãy lặp lại tất cả các bước đúng cách. - Nếu bạn vẫn không thể sửa đổi thời gian chờ I/O, hãy liên hệ với Bộ phận hỗ trợ Apigee.
Định cấu hình thời gian chờ I/O trên bộ định tuyến
Phần này giải thích cách định cấu hình thời gian chờ I/O trên Bộ định tuyến. Bạn có thể định cấu hình thời gian chờ I/O thông qua thuộc tính Bộ định tuyến conf_load_balancing_load.balancing.driver.proxy.read.timeout
. Thuộc tính này biểu thị giá trị thời gian chờ I/O tính bằng giây.
Để định cấu hình thời gian chờ I/O trên Bộ định tuyến, hãy làm như sau:
- Trên máy Bộ định tuyến, hãy mở tệp sau trong trình chỉnh sửa. Nếu chưa có, hãy tạo miền.
/opt/apigee/customer/application/router.properties
Ví dụ: để mở tệp bằng
vi
, hãy nhập lệnh sau:vi /opt/apigee/customer/application/router.properties
- Thêm một dòng ở định dạng sau vào tệp
properties
, thay thế một giá trị chotime_in_seconds
: - Lưu các thay đổi.
- Đảm bảo tệp thuộc tính này thuộc quyền sở hữu của người dùng
apigee
như minh hoạ bên dưới:chown apigee:apigee /opt/apigee/customer/application/router.properties
- Khởi động lại Bộ định tuyến như minh hoạ bên dưới:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Nếu bạn có nhiều Bộ định tuyến, hãy lặp lại các bước trên cho tất cả Bộ định tuyến.
conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
Ví dụ: để thay đổi thời gian chờ I/O trên Bộ định tuyến thành 120 giây, hãy thêm dòng sau:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
Bạn cũng có thể sửa đổi thời gian chờ I/O trong vài phút. Ví dụ: để thay đổi thời gian chờ thành 2 phút, hãy thêm dòng sau:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
Xác minh thời gian chờ I/O trên Bộ định tuyến
Phần này giải thích cách xác minh thời gian chờ I/O đã được sửa đổi thành công trên Bộ định tuyến.
Mặc dù bạn sử dụng mã thông báo conf_load_balancing_load.balancing.driver.proxy.read.timeout
để đặt thời gian chờ I/O trên Bộ định tuyến, nhưng bạn vẫn cần xác minh xem thuộc tính thực tế proxy_read_timeout
đã được thiết lập với giá trị mới hay chưa.
- Tìm thuộc tính
proxy_read_timeout
trong thư mục/opt/nginx/conf.d
rồi kiểm tra xem thuộc tính đó đã được đặt bằng giá trị mới như sau chưa:grep -ri "proxy_read_timeout" /opt/nginx/conf.d
- Nếu giá trị thời gian chờ I/O mới được đặt thành công trên bộ định tuyến, thì lệnh trên sẽ hiển thị giá trị mới trong mọi tệp cấu hình máy chủ ảo.
Sau đây là kết quả mẫu từ lệnh
grep
ở trên khi thời gian chờ I/O là 120 giây:/opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120; /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
Trong kết quả ví dụ ở trên, hãy lưu ý rằng thuộc tính
proxy_read_timeout
đã được thiết lập với giá trị mới 120 trong0-default.conf
. Đây là tệp cấu hình cho máy chủ ảo mặc định. Điều này cho biết thời gian chờ I/O được định cấu hình thành công thành 120 giây trên Bộ định tuyến. - Nếu bạn vẫn thấy giá trị cũ của thuộc tính
proxy_read_timeout
, hãy xác minh rằng bạn đã làm đúng theo tất cả các bước nêu trong bài viết Định cấu hình thời gian chờ I/O trên Bộ định tuyến một cách chính xác. Nếu bạn đã bỏ lỡ bất kỳ bước nào, hãy lặp lại tất cả các bước đúng cách. - Nếu bạn vẫn không thể sửa đổi thời gian chờ I/O, hãy liên hệ với Bộ phận hỗ trợ Apigee.
Tiếp theo là gì?
Tìm hiểu về Định cấu hình thời gian chờ I/O trong Trình xử lý thư