시간 초과 오류

<ph type="x-smartling-placeholder"></ph> 현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서.
정보

증상

Edge UI 또는 Management API를 통한 API 프록시 버전 배포가 시간 초과로 실패함 오류가 발생했습니다.

오류 메시지

Click to change deployment status. 
The revision is deployed and traffic can flow, but flow may be impaired. 
Error: Call timed out; either server is down or server is not reachable

가능한 원인

이 문제의 일반적인 원인은 다음과 같습니다.

원인 세부정보 대상:
네트워크 연결 문제 네트워크로 인한 관리 서버와 메시지 프로세서 간의 통신 실패 연결 문제나 방화벽 규칙이 있기 때문입니다 프라이빗 클라우드 사용자만
대형 API 프록시 번들 API 프록시 번들의 크기가 크면 메시지 프로세서가 활성화되는 데 RPC 시간 초과로 이어집니다. 프라이빗 및 퍼블릭 클라우드 사용자

네트워크 연결 문제

참고: Edge 프라이빗 클라우드 사용자만 다음 단계를 수행할 수 있습니다. 만약 Edge Public Cloud를 사용하는 경우 Apigee Edge 지원팀에 문의하세요.

진단

  1. 다음을 사용하여 오류가 표시된 특정 API의 배포 상태를 가져옵니다. 관리 API 호출:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
    

    오류를 보여주는 샘플 출력은 다음과 같습니다.

    { 
                    "error": "Call timed out; either server is down or server is not reachable", 
                    "status": "error", 
                    "type": [ 
                    "message-processor" 
                    ], 
                    "uUID": "ebbc1078-cbde-4a00-a7db-66a3c1b2b748" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "message-processor" 
                    ], 
                    "uUID": "204e2b7e-52f7-46d9-b458-20f9bfb51e6d" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "router" 
                    ], 
                    "uUID": "967e63c6-ee95-47c0-9608-f4a32638fb1e" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "router" 
                    ], 
                    "state" : "error"
                    } 
    

    위의 샘플 출력은 메시지 프로세서 중 하나에서 오류가 발생했음을 보여줍니다. UUID 'ebbc1078-cbde-4a00-a7db-66a3c1b2b748' 포함

  2. API 프록시의 배포 상태 출력에 따라 각 메시지에 로그인합니다. 오류를 표시한 해당 UUID가 포함된 프로세서를 사용하여 다음 단계를 수행합니다. <ph type="x-smartling-placeholder">
      </ph>
    1. 메시지 프로세서가 포트 4528에서 수신 대기 중인지 확인합니다.
      netstat -an | grep LISTEN | grep 4528
      

      메시지 프로세서가 포트 4528에서 수신 대기하지 않는 경우 메시지를 다시 시작합니다. 프로세서:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    2. 표시된 관리 API 호출을 사용하여 API 프록시의 배포 상태를 다시 확인합니다. 추가할 수 있습니다. 오류가 없으면 문제가 해결된 것입니다.
  3. 문제가 지속되면 관리 서버에서 메일로의 연결을 테스트해 보세요. 다음 단계에 따라 포트 4528의 프로세서를 사용합니다. <ph type="x-smartling-placeholder">
      </ph>
    1. 텔넷을 사용할 수 있는 경우 텔넷을 사용합니다.
      telnet <MessageProcessor_IP> 4528
      
    2. Telnet을 사용할 수 없는 경우 다음과 같이 netcat을 사용하여 연결을 확인합니다.
      nc -vz <MessageProcessor_IP> 4528
      
    3. '연결 거부됨'이라는 응답을 받는 경우 '연결 시간이 초과되었습니다.'라는 오류 메시지가 표시되면 관리하게 됩니다
  4. 메시지 프로세서와 포트 4526의 관리 서버 간 연결 테스트 다음 단계를 따르세요. <ph type="x-smartling-placeholder">
      </ph>
    1. 텔넷을 사용할 수 있는 경우 텔넷을 사용합니다.
      telnet <management-server-IP> 4526
      
    2. Telnet을 사용할 수 없는 경우 다음과 같이 netcat을 사용하여 연결을 확인합니다.
      nc -vz <management-server-IP> 4526 
      
    3. '연결 거부됨'이라는 응답을 받는 경우 '연결 시간 초과'가 발생하면 네트워크 운영팀입니다
  5. 네트워크 운영팀과 협력하여 다음을 수행하세요. <ph type="x-smartling-placeholder">
      </ph>
    1. 관리 서버와 메시지 모두에 RPC 프로토콜이 허용되는지 확인하세요. 프로세서.
    2. 관리 서버 간의 방화벽 제한이나 보안 규칙 설정을 삭제합니다. 및 메시지 프로세서가 관리 서버의 포트 4526에 연결할 수 있도록 합니다. 포트 4528을 통해 관리 서버에서 메시지 프로세서로 연결이 가능합니다.
  6. 배포 상태를 다시 확인합니다 (위의 1단계 참조). 오류가 표시되지 않으면 오류가 해결되었음을 나타냅니다.
  7. 문제가 지속되면 메시지 프로세서에 네트워크 문제가 있는지 확인하세요. 만약 시간 초과 오류를 표시하는 특정 메시지 프로세서를 다시 시작하면 됩니다. 배포 상태 출력)이 문제를 해결할 수 있습니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  8. 문제가 지속되면 다음 위치에서 Management Server 로그를 확인하세요. (/opt/apigee/var/log/edge-management-server/logs/system.log)

    관리 서버 로그의 샘플 통화 시간 초과 오류

    2016-05-17 09:29:56,448 org:myorg env:prod qtp281969267-360792 ERROR DISTRIBUTION - RemoteServicesConfigEventHandler.configureServers() : exception for server with uuid e1381db7-d83b-4752-ae04-2de33f07e555 : cause = RPC Error 504: Call timed out communication error = true 
            com.apigee.rpc.RPCException: Call timed out 
            at com.apigee.rpc.impl.AbstractCallerImpl.handleTimeout(AbstractCallerImpl.java:64) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.handleTimeout(RPCMachineImpl.java:483) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.access$000(RPCMachineImpl.java:402) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall$1.run(RPCMachineImpl.java:437) ~[rpc-1.0.0.jar:na] 
            at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:532) ~[netty-all-4.0.0.CR1.jar:na] 
            at io.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:430) ~[netty-all-4.0.0.CR1.jar:na] 
            at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:371) ~[netty-all-4.0.0.CR1.jar:na] 
            at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_79] 
            
    

    위의 예와 유사한 오류가 발생하면 RPC 네트워크 속도 저하가 발생하면 관리 서버가 메시지 프로세서에 연결하는 데 걸리는 시간

해상도

참고: Edge 프라이빗 클라우드 사용자만 다음 단계를 수행할 수 있습니다. 만약 Edge Public Cloud를 사용하는 경우 Apigee Edge 지원팀에 문의하세요.

  1. RPC 제한 시간을 늘리려면 다음 단계를 따르세요. <ph type="x-smartling-placeholder">
      </ph>
    1. 파일 만들기 경영진 /opt/apigee/customer/application/management-server.properties 서버 머신(아직 없는 경우)
    2. 이 파일에 다음 줄을 추가합니다.
      conf_cluster_rpc.connect.timeout=<time in seconds>
      

      기본 RPC 제한 시간 값은 10이며 40으로 늘리는 것이 좋습니다. 초입니다. 다음과 같이 설정합니다.

      conf_cluster_rpc.connect.timeout=40
      
    3. 이 파일이 Apigee의 소유인지 확인하세요.
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
      
    4. 관리 서버를 다시 시작합니다.
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
      
    5. 관리 서버가 두 개 이상인 경우 모든 관리 콘솔에서 위의 단계를 관리 서버.
    6. Edge UI에서 또는 Edge 관리 API 호출을 사용하여 API 프록시를 배포합니다. 만약 API 프록시가 문제 없이 배포되면 문제가 해결되었음을 나타냅니다.
  2. 문제가 지속되면 tcpdump 명령어만 필요합니다. tcpdump 사용 설정 명령어를 실행한 후 UI에서 API 프록시 배포를 시작합니다. 또는 관리 API를 사용하여 다음을 수행합니다. <ph type="x-smartling-placeholder">
      </ph>
    1. 관리 서버에서 아래 tcpdump 명령어를 실행합니다.
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
      
    2. 메시지 프로세서에서 아래의 tcpdump 명령어를 실행합니다.
      tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
      
    3. 도움이 필요한 경우 Apigee Edge 지원팀에 문의하세요. 문제를 더 자세히 해결할 수 있습니다

크게 API 프록시 번들

진단

  1. 배포 오류가 발생한 API 프록시 번들의 크기를 확인하세요. 확인할 수 있습니다
  2. 크기가 상당히 큰 경우 (10MB 이상) 대행업체에서 API 프록시를 활성화하는 데 시간이 더 필요할 수 있습니다.
  3. API 프록시 번들 크기가 15MB보다 큰 경우 API 프록시 번들이 15MB보다 큼

해상도

참고: Edge 프라이빗 클라우드 사용자만 다음 단계를 수행할 수 있습니다. 만약 Edge Public Cloud를 사용하는 경우 Apigee Edge 지원팀에 문의하세요.

메시지 프로세서가 대규모 API 프록시 번들 활성화 RPC 제한 시간을 늘리려면 다음 단계를 따르세요. 값:

  1. /opt/apigee/customer/application/management-server.properties 파일 만들기 .
  2. 이 파일에 다음 줄을 추가합니다.
    conf_cluster_rpc.connect.timeout=<time in seconds>
    

    기본 RPC 제한 시간 값은 10이며 40초로 늘리는 것이 좋습니다. 다음과 같이 설정합니다.

    conf_cluster_rpc.connect.timeout=40
    
  3. 이 파일이 Apigee의 소유인지 확인하세요.
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    
  4. 관리 서버를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. 관리 서버가 두 개 이상인 경우 모든 관리 서버에서 위 단계를 반복하세요. 서버.

문제가 계속되면 Apigee Edge 지원팀에 문의하여 도움이 될 것입니다.