503 Dịch vụ không có sẵn – NoActiveTargets

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Video

Hãy xem các video sau để biết thêm thông tin về lỗi 503:

Video Nội dung mô tả
Khắc phục sự cố và giải quyết vấn đề dịch vụ 503 không có sẵn – NoActiveTargets Tìm hiểu về những nội dung sau:
  • Tầm quan trọng của máy chủ mục tiêu và giám sát tình trạng
  • Khắc phục sự cố và giải quyết lỗi dịch vụ 503 không có sẵn theo thời gian thực – lỗi NoActiveTargets

Triệu chứng

Ứng dụng sẽ nhận được mã trạng thái phản hồi HTTP 503 với thông báo Service Invalid (Dịch vụ không có sẵn) và mã lỗi NoActiveTargets (NoActiveTargets) cho các yêu cầu proxy API.

Thông báo lỗi

Bạn sẽ thấy phản hồi lỗi sau đây:

HTTP/1.1 503 Service Unavailable
  

Bạn sẽ thấy thông báo lỗi sau đây trong phản hồi HTTP:

{
   "fault": {
      "faultstring": "The Service is temporarily unavailable",
      "detail": {
           "errorcode": "messaging.adaptors.http.flow.NoActiveTargets"
       }
    }
}
  

Các nguyên nhân có thể

Phản hồi HTTP 503 ServiceKhông khả dụng với mã lỗi NoActiveTargets thường được quan sát thấy khi bạn sử dụng một hoặc nhiều máy chủ đích trong cấu hình điểm cuối mục tiêu trong Proxy API.

Bảng sau đây liệt kê các nguyên nhân có thể dẫn đến phản hồi 503 Service Không khả dụng với mã lỗi NoActiveTargets:

Nguyên nhân Nội dung mô tả Ai có thể thực hiện các bước khắc phục sự cố
Máy chủ mục tiêu đã bị tắt Máy chủ đích được chỉ định trong cấu hình điểm cuối đích đã bị tắt. Người dùng Edge Public và Private Cloud
Lỗi kết nối do phân giải DNS không chính xác Quá trình phân giải DNS của máy chủ mục tiêu khiến địa chỉ IP không hợp lệ dẫn đến lỗi kết nối. Người dùng Edge Private Cloud
Lỗi kết nối Các vấn đề về mạng hoặc khả năng kết nối ngăn ứng dụng kết nối với máy chủ. Người dùng Edge Private Cloud
Email đại diện mục tiêu của máy chủ không chính xác Máy chủ lưu trữ đích được chỉ định không chính xác hoặc có các ký tự không mong muốn (chẳng hạn như dấu cách). Người dùng Edge Public và Private Cloud
Lỗi bắt tay SSL Không thể bắt tay TLS/SSL giữa ứng dụng và máy chủ. Người dùng Edge Public và Private Cloud
Lỗi khi kiểm tra tình trạng Có thể không thành công trong quá trình kiểm tra tình trạng được định cấu hình để kiểm tra tình trạng của máy chủ đích vì một lý do nào đó. Người dùng Edge Private Cloud

Nguyên nhân: Máy chủ đích bị tắt

Nếu tất cả máy chủ đích được chỉ định trong cấu hình điểm cuối mục tiêu đều bị tắt, thì bạn sẽ nhận được phản hồi 503 Service Không khả dụng kèm theo mã lỗi NoActiveTargets.

Chẩn đoán

  1. Xác định tên của máy chủ đích đang được dùng trong Cấu hình điểm cuối mục tiêu cụ thể của Proxy API không thành công bằng một trong những cách sau:
    1. Nếu có một điểm cuối đích duy nhất, hãy kiểm tra điểm cuối đích cụ thể đó.
    2. Nếu có nhiều điểm cuối mục tiêu và nếu bạn không chắc chắn điểm cuối nào đã tắt máy chủ đích, hãy làm theo các bước dưới đây:
      1. Bật phiên theo dõi, thực hiện lệnh gọi API và tái hiện vấn đề – 503 Service Không khả dụng.
      2. Từ dấu vết, hãy chuyển đến Target Request Flow Started (Đã bắt đầu luồng yêu cầu mục tiêu) và xác định tên của điểm cuối mục tiêu như hiển thị bên dưới:
      3. Xác định tên điểm cuối đích từ dấu vết

  2. Sau khi bạn xác định được điểm cuối mục tiêu, hãy lấy tên máy chủ mục tiêu trong cấu hình điểm cuối mục tiêu như trong ví dụ bên dưới:
    <TargetEndpoint name="default">>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="demo-target" />
        </LoadBalancer>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
          

    Trong ví dụ trên, có một máy chủ mục tiêu duy nhất có tên là demo-target.

  3. Nhận định nghĩa cho từng máy chủ đích dùng trong điểm cuối đích bằng lệnh gọi API Edge hoặc Giao diện người dùng Edge.

    Giao diện người dùng Edge

    Cách xem định nghĩa bằng giao diện người dùng Edge:

    1. Di chuyển đến phần Quản trị > Môi trường > Máy chủ mục tiêu.
    2. Chọn môi trường cụ thể mà bạn đang gặp lỗi.
    3. Tìm kiếm tên máy chủ mục tiêu cụ thể để xem định nghĩa máy chủ mục tiêu.

      Ví dụ: nhập tên máy chủ mục tiêu demo-target và bạn sẽ thấy định nghĩa như sau:

      Tên máy chủ mục tiêu và trạng thái bật/tắt

      Xin lưu ý ở đây là demo-target của máy chủ đích có bí danh của máy chủ lưu trữ, cổng # và SSL được bật. Tuy nhiên, bản thân máy chủ mục tiêu đã bị tắt và điều này được biểu thị bằng phần tử ĐÃ BẬT màu xám.

    API Edge

    Để xem định nghĩa bằng Edge API, hãy làm như sau:

    Hãy sử dụng API Máy chủ mục tiêu để nhận định nghĩa về máy chủ mục tiêu.

    Kết quả định nghĩa máy chủ mục tiêu

    <TargetServer name="demo-target">
      <Host>demo-target.apigee.net</Host>
      <Port>443</Port>
      <IsEnabled>false</IsEnabled>
      <SSLInfo>
          <Enabled>true</Enabled>
      </SSLInfo>
    </TargetServer>
              

    Kết quả API Apigee cho thấy mục tiêu bản minh hoạ của máy chủ mục tiêu bị tắt vì phần tử IsEnabled được đặt thành false.

    Vì máy chủ đích đã bị vô hiệu hoá nên Trình xử lý thông báo sẽ gửi thông báo 503 Service Available (Không có dịch vụ) kèm theo mã lỗi NoActiveTargets (NoActiveTargets) ra ngay sau khi phản hồi máy khách.

Độ phân giải

Đảm bảo rằng bạn luôn bật các máy chủ mục tiêu cụ thể được dùng trong cấu hình điểm cuối mục tiêu của Proxy API.

Giao diện người dùng Edge

  1. Di chuyển đến phần Quản trị > Môi trường > Máy chủ mục tiêu.
  2. Chọn môi trường cụ thể mà bạn đang gặp lỗi.
  3. Tìm kiếm tên máy chủ đích cụ thể để xem định nghĩa.
  4. Chọn máy chủ đích cụ thể rồi nhấp vào Chỉnh sửa.
  5. Chọn hộp đánh dấu Enabled (Bật).
  6. Nhấp vào Cập nhật.

API Edge

Hãy sử dụng Cập nhật API máy chủ mục tiêu để cập nhật định nghĩa máy chủ mục tiêu và đảm bảo rằng IsEnabled được đặt thành true trong tải trọng yêu cầu của API như minh hoạ dưới đây:

<TargetServer name="demo-target">
  <Host>demo-target.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
      <Enabled>true</Enabled>
  </SSLInfo>
</TargetServer>
        

Nếu vấn đề vẫn tiếp diễn, hãy chuyển đến phần Phải thu thập thông tin chẩn đoán.

Chẩn đoán các vấn đề bằng tính năng giám sát API

Giám sát API giúp bạn nhanh chóng tách biệt các khu vực có vấn đề để chẩn đoán lỗi, hiệu suất và các vấn đề về độ trễ cũng như các nguồn liên quan, chẳng hạn như ứng dụng dành cho nhà phát triển, proxy API, mục tiêu phụ trợ hoặc nền tảng API.

Xem tình huống mẫu minh hoạ cách khắc phục sự cố 5xx xảy ra với API bằng tính năng Giám sát API. Ví dụ: bạn nên thiết lập cảnh báo để nhận thông báo khi số lượng lỗi messaging.adaptors.http.flow.NoActiveTargets vượt quá một ngưỡng cụ thể.

Phải thu thập thông tin chẩn đoán

Nếu vấn đề vẫn tiếp diễn sau khi đã làm theo hướng dẫn ở trên, vui lòng thu thập thông tin chẩn đoán sau đây. Hãy liên hệ và chia sẻ thông tin với Nhóm hỗ trợ API:

  1. Nếu bạn là người dùng Public Cloud, hãy cung cấp những thông tin sau:
    1. Tên tổ chức
    2. Tên môi trường
    3. Tên proxy API
    4. Hoàn tất lệnh curl để tái hiện lỗi
    5. Tệp theo dõi chứa các yêu cầu có dịch vụ 503 không khả dụng kèm theo mã lỗi NoActiveTargets
  2. Nếu bạn là người dùng Đám mây riêng tư, hãy cung cấp những thông tin sau:
    1. Đã phát hiện thấy Thông báo lỗi hoàn chỉnh
    2. Tên môi trường
    3. Gói Proxy API
    4. Tệp theo dõi chứa các yêu cầu có dịch vụ 503 không khả dụng kèm theo mã lỗi NoActiveTargets
    5. Nhật ký truy cập NGINX

      (/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log)

    6. Nhật ký bộ xử lý thông báo

      (/opt/apigee/var/log/edge-message-processor/logs/system.log)