Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Symptom
Развертывание версий прокси-сервера API через интерфейс Edge или Management 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
Возможные причины
Обычно это происходит по следующим причинам:
| Cause | Подробнее… | Для |
| Проблемы с подключением к сети | Сбой связи между сервером управления и Message Processor из-за проблем с сетевым подключением или правил брандмауэра. | Только для пользователей частного облака |
| Большой пакет прокси API | Если пакет прокси-сервера API имеет большой размер, активация Message Processor может занять много времени, что приведет к истечению времени ожидания RPC. | Пользователи частных и общедоступных облачных сервисов |
Проблемы с подключением к сети
Примечание. Выполнить описанные ниже действия могут только пользователи Edge Private Cloud. Если вы используете общедоступное облако Edge, обратитесь в службу поддержки Apigee Edge.
диагностика;
- Чтобы узнать статус развертывания для определенного 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". - На основе выходных данных статуса развертывания для прокси-сервера API войдите в каждый из процессоров сообщений с соответствующим UUID, в котором произошла ошибка, и выполните следующие действия:
- Проверьте, прослушивает ли Message Processor порт 4528:
netstat -an | grep LISTEN | grep 4528
Если Message Processor не прослушивает порт 4528, перезапустите его:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Ещё раз проверьте статус развертывания прокси-сервера API, используя вызов API управления, показанный на шаге 1 выше. Если ошибок нет, значит проблема решена.
- Проверьте, прослушивает ли Message Processor порт 4528:
- Если проблема не исчезнет, проверьте подключение от сервера управления к процессору сообщений через порт 4528, выполнив следующие действия:
- Если telnet доступен, используйте его:
telnet <MessageProcessor_IP> 4528
- Если telnet недоступен, используйте netcat, чтобы проверить подключение, как описано ниже.
nc -vz <MessageProcessor_IP> 4528
- Если вы получили ответ "Подключение отклонено" или "Время ожидания подключения истекло", обратитесь к команде по эксплуатации сети.
- Если telnet доступен, используйте его:
- Проверьте подключение от обработчика сообщений к серверу управления через порт 4526, выполнив следующие действия:
- Если telnet доступен, используйте его:
telnet <management-server-IP> 4526
- Если telnet недоступен, используйте netcat, чтобы проверить подключение, как описано ниже.
nc -vz <management-server-IP> 4526
- Если вы получили ответ "Connection Refused" (Подключение отклонено) или "Connection timed out" (Время ожидания подключения истекло), обратитесь к команде по эксплуатации сети.
- Если telnet доступен, используйте его:
- Обратитесь к команде по эксплуатации сети и выполните следующие действия:
- Убедитесь, что протокол RPC разрешен как на сервере управления, так и на процессоре сообщений.
- Снимите все ограничения брандмауэра или правила безопасности, установленные между серверами управления и процессорами сообщений, чтобы разрешить подключение к порту 4526 на сервере управления и подключение от сервера управления к процессорам сообщений через порт 4528.
- Ещё раз проверьте статус развертывания (см. шаг 1 выше). Если ошибок нет, значит проблема решена.
- Если проблема не исчезнет, проверьте, нет ли проблем с сетью у Message Processor. Если возникла проблема с сетью, перезапустите определенный процессор сообщений, который показывает ошибку тайм-аута (согласно выходным данным статуса развертывания). Это может решить проблему:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Если проблема не исчезнет, проверьте журналы сервера управления по адресу:
(
/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 на сервере управления, чтобы в случае замедления работы сети у сервера управления было достаточно времени для подключения к Message Processor.
Разрешение
Примечание. Следующие шаги могут выполнить только пользователи Edge Private Cloud. Если вы используете общедоступное облако Edge, обратитесь в службу поддержки Apigee Edge.
- Чтобы увеличить время ожидания RPC, выполните следующие действия:
- Создайте файл
/opt/apigee/customer/application/management-server.propertiesна сервере управления, если он ещё не существует. - Добавьте в этот файл следующую строку:
conf_cluster_rpc.connect.timeout=<time in seconds>
Значение времени ожидания RPC по умолчанию – 10. Рекомендуется увеличить его до 40 секунд. Задайте следующие значения:
conf_cluster_rpc.connect.timeout=40
- Убедитесь, что владельцем этого файла является пользователь apigee:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Перезапустите сервер управления:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Если у вас несколько серверов управления, повторите описанные выше действия на всех из них.
- Разверните прокси-сервер API в интерфейсе Edge или с помощью вызова API управления Edge. Если прокси-сервер API развертывается без проблем, значит проблема решена.
- Создайте файл
- Если проблема не исчезнет, соберите данные с помощью команды
tcpdump на сервере управления и Message Processor. Включите команду tcpdump на каждом из серверов, а затем запустите развертывание прокси API из интерфейса или с помощью API управления:
- Выполните приведенную ниже команду tcpdump на сервере управления:
tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
- Выполните приведенную ниже команду tcpdump из Message Processor:
tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
- Обратитесь в службу поддержки Apigee Edge, чтобы получить помощь в анализе tcpdump и устранении неполадок.
- Выполните приведенную ниже команду tcpdump на сервере управления:
Большой пакет прокси API
диагностика;
- Проверьте размер пакета прокси-сервера API, для которого наблюдается ошибка развертывания.
- Если размер достаточно большой (10 МБ или больше), то, скорее всего, Message Processor потребуется больше времени, чтобы активировать прокси-сервер API.
- Если размер набора прокси API превышает 15 МБ, перейдите к разделу Набор прокси API размером более 15 МБ.
Разрешение
Примечание. Выполнить описанные ниже действия могут только пользователи Edge Private Cloud. Если вы используете общедоступное облако Edge, обратитесь в службу поддержки Apigee Edge.
Увеличьте время ожидания RPC на сервере управления, чтобы у Message Processor было достаточно времени для активации больших пакетов прокси-серверов API. Чтобы увеличить значение времени ожидания RPC, выполните следующие действия:
- Создайте файл
/opt/apigee/customer/application/management-server.propertiesна сервере управления, если он ещё не существует. - Добавьте в этот файл следующую строку:
conf_cluster_rpc.connect.timeout=<time in seconds>
Значение времени ожидания RPC по умолчанию равно 10, но рекомендуется увеличить его до 40 секунд. Задайте следующие значения:
conf_cluster_rpc.connect.timeout=40
- Убедитесь, что владельцем этого файла является пользователь apigee:
chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Перезапустите сервер управления:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Если у вас несколько серверов управления, повторите описанные выше действия на всех из них.
Если проблема не исчезнет, обратитесь в службу поддержки Apigee Edge.