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 Mô tả
Khắc phục sự cố và giải quyết dịch vụ 503 không có sẵn – NoActiveTargets Tìm hiểu về những điều sau:
  • Tầm quan trọng của máy chủ mục tiêu và thiết bị theo dõi tình trạng
  • Khắc phục sự cố và giải quyết dịch vụ 503 theo thời gian thực không khả dụng - lỗi NoActiveTargets

Triệu chứng

Ứng dụng khách nhận được mã trạng thái phản hồi HTTP 503 bằng thông báo Service Available và mã lỗi 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:

HTTP/1.1 503 Service Unavailable
  

Bạn sẽ thấy thông báo lỗi sau 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ể

Thường thấy phản hồi HTTP 503 Service Available với mã lỗi NoActiveTargets khi bạn sử dụng một hoặc nhiều máy chủ mục tiêu trong cấu hình thiết bị đầu cuối đích 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 Available với mã lỗi NoActiveTargets:

Nguyên nhân Mô tả Người có thể thực hiện các bước khắc phục sự cố
Máy chủ mục tiêu đã tắt Máy chủ mục tiêu được chỉ định trong cấu hình thiết bị đầu cuối đích sẽ bị tắt. Người dùng Edge công khai và riêng tư
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ủ đích dẫn đế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 khiến ứng dụng không kết nối được với máy chủ. Người dùng Edge Private Cloud
Bí danh máy chủ lưu trữ mục tiêu không chính xác Máy chủ lưu trữ máy chủ đí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ư một dấu cách). Người dùng Edge công khai và riêng tư
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 công khai và riêng tư
Lỗi khi kiểm tra tình trạng Tính năng kiểm tra tình trạng được thiết lập để kiểm tra tình trạng của máy chủ mục tiêu có thể không thành công vì một số lý do. 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ủ mục tiêu được chỉ định trong cấu hình thiết bị đầu cuối đích đều bị tắt, thì bạn nhận được phản hồi 503 Service Available kèm theo mã lỗi NoActiveTargets.

Chẩn đoán

  1. Xác định tên của máy chủ mục tiêu đang được dùng trong Điểm cuối mục tiêu cụ thể Cấu hình Proxy API không thành công bằng một trong các cách sau:
    1. Nếu có một điểm cuối mục tiêu duy nhất, hãy kiểm tra điểm cuối 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ủ mục tiêu, 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 tạo vấn đề – 503 Service Available (Dịch vụ 503 không có sẵn).
      2. Từ dấu vết, hãy chuyển đến phần Target Request Flow required (Đã bắt đầu luồng yêu cầu mục tiêu) rồi xác định tên của điểm cuối mục tiêu như minh hoạ dưới đây:
      3. Xác định tên điểm cuối đích từ dấu vết

  2. Sau khi 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 được dùng trong cấu hình thiết bị đầu 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. Lấy định nghĩa cho từng máy chủ mục tiêu dùng trong điểm cuối đích bằng cách sử dụng giao diện người dùng Edge hoặc lệnh gọi API 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. Chuyển đến mục 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 gặp lỗi.
    3. Tìm theo tên máy chủ mục tiêu cụ thể để nhận đị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 của nó như sau:

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

      Xin lưu ý rằng mục tiêu minh hoạ của máy chủ mục tiêu có bí danh máy chủ lưu trữ, cổng # và SSL đang được bật. Tuy nhiên, bản thân máy chủ mục tiêu bị tắt , biểu thị bằng phần tử BẬT có màu xám.

    API Edge

    Cách xem định nghĩa bằng API Edge:

    Sử dụng Tải TargetServer API để nhận định nghĩa 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ả của API Apigee cho thấy mục tiêu minh hoạ của máy chủ mục tiêu đang bị tắt vì phần tử IsEnabled được đặt thành false.

    Vì máy chủ đích bị tắt, Bộ xử lý thư sẽ gửi Dịch vụ 503 Không có sẵn với mã lỗi NoActiveTargets ngay lập tức dưới dạng phản hồi cho khách hàng.

Độ phân giải

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

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

  1. Chuyển đến mục 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 gặp lỗi.
  3. Tìm kiếm tên máy chủ mục tiêu cụ thể để xem định nghĩa tương ứng.
  4. Chọn máy chủ mục tiêu 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

Sử dụng Cập nhật một Target Server API để 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 sự cố vẫn tiếp diễn, hãy chuyển đế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

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

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

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

Nếu sự cố vẫn tiếp diễn ngay cả sau khi đã làm theo các hướng dẫn trên, hãy thu thập các thông tin sau thông tin chẩn đoán. Liên hệ và chia sẻ chúng với Nhóm hỗ trợ Apigee:

  1. Nếu bạn là người dùng Đám mây công cộng, hãy cung cấp các 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 với 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 với 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ư

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