Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. thông tin
Triệu chứng
Không triển khai được các bản sửa đổi proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge với lỗi ZooKeeper "Error khi tìm nạp phần tử con cho đường dẫn".
Thông báo lỗi
Error in deployment for environment prod. The revision is deployed, but traffic cannot flow. com.apigee.repository.RepositoryException{ code = repository.zookeeper.UnExpectedError, message = Unexpected error Error while fetching children for path : /organizations/myorg/environments/prod/apiproxies/tinkerbell/revisions, associated contexts = []};
Nguyên nhân có thể xảy ra
Nguyên nhân thông thường gây ra lỗi này là sự cố kết nối mạng giữa Trình xử lý thông báo và ZooKeeper.
Chẩn đoán
Lưu ý: Chỉ người dùng Edge Private Cloud mới có thể thực hiện các bước sau. Nếu bạn đang sử dụng Edge Public Cloud, hãy liên hệ với Apigee Edge Support.
- Nhận dữ liệu đầu ra về trạng thái triển khai của API cụ thể hiển thị lỗi bằng cách sử dụng lệnh gọi API quản lý sau đây:
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Kết quả về trạng thái triển khai mẫu cho thấy lỗi:
{ "environment" : [ { "name" : "prod", "revision" : [ { "configuration" : { "basePath" : "/", "steps" : [ ] }, "name" : "1", "server" : [ { "error" : "com.apigee.repository.RepositoryException: com.apigee.zookeeper.ZooKeeperException{ code = zookeeper.ErrorFetchingChildren, message = Error while fetching children for path : /organizations/gsc/environments/prod/apiproxies/apigee_test/revisions, associated contexts = []}", "status" : "error", "type" : [ "message-processor" ], "uUID" : "01fc5b23-8ad3-40bf-b059-2fc82cdac111" },
- Kiểm tra Bộ xử lý thư (
/opt/apigee/var/log/edge-message-processor/system.log
).Lỗi mẫu trong nhật ký Trình xử lý thư
2017-05-29 01:25:40,592 main ERROR KERNEL - MicroKernel.deployAll() : MicroKernel.deployAll() : Error in deploying the deployment : WebService com.apigee.zookeeper.ZooKeeperException: Error while checking path existence for path : /regions/dc-2/pods/gateway/servers/099c2603-93a4-4b73-ae03-a55d130adb80/reachable at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:410) ~[zookeeper-1.0.0.jar:na] at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:394) ~[zookeeper-1.0.0.jar:na] at com.apigee.services.repository.zookeeper.ZKRepository.exists(ZKRepository.java:280) ~[repository-impl-1.0.0.jar:na] at com.apigee.services.repository.RepositoryServiceImpl.exists(RepositoryServiceImpl.java:234) ~[repository-impl-1.0.0.jar:na] at com.apigee.registration.info.StatusBuilder.build(StatusBuilder.java:26) ~[registration-1.0.0.jar:na] at com.apigee.registration.ServerRegistrationServiceImpl.buildServerInfo(ServerRegistrationServiceImpl.java:856) ~[registration-1.0.0.jar:na] at com.apigee.registration.ServerRegistrationServiceImpl.start(ServerRegistrationServiceImpl.java:122) ~[registration-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.startService(ServiceDeployer.java:167) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:70) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.deployDependantServices(ServiceDeployer.java:356) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:76) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.deployDependantServices(ServiceDeployer.java:356) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:76) ~[microkernel-1.0.0.jar:na] at com.apigee.kernel.MicroKernel.deployAll(MicroKernel.java:178) [microkernel-1.0.0.jar:na] at com.apigee.kernel.MicroKernel.start(MicroKernel.java:139) [microkernel-1.0.0.jar:na] at com.apigee.kernel.MicroKernel.start(MicroKernel.java:135) [microkernel-1.0.0.jar:na] at com.apigee.kernel.MicroKernel.main(MicroKernel.java:84) [microkernel-1.0.0.jar:na] Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /regions/dc-2/pods/gateway/servers/099c2603-93a4-4b73-ae03-a55d130adb80/reachable at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) ~[zookeeper-3.4.6.jar:3.4.6-1569965] at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[zookeeper-3.4.6.jar:3.4.6-1569965] at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1045) ~[zookeeper-3.4.6.jar:3.4.6-1569965] at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1073) ~[zookeeper-3.4.6.jar:3.4.6-1569965] at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:402) ~[zookeeper-1.0.0.jar:na] ... 16 common frames omitted
- Nếu bạn nhận thấy lỗi tương tự như trong ví dụ trên, hãy làm theo các bước sau:
- Kiểm tra kết nối từ Bộ xử lý thông báo với máy chủ ZooKeeper trên cổng 2181 theo các bước sau:
- Nếu có thể dùng telnet, hãy dùng telnet:
telnet <ZooKeeper-IP> 2181
- Nếu không có telnet, hãy dùng netcat để kiểm tra kết nối như sau:
nc -vz <ZooKeeper-IP> 2181
- Nếu bạn nhận được phản hồi "Kết nối bị từ chối" hoặc "Kết nối đã hết thời gian chờ", hãy liên hệ với nhóm điều hành mạng của bạn. Chuyển đến phần Giải pháp bên dưới.
- Nếu có thể dùng telnet, hãy dùng telnet:
- Kiểm tra kết nối từ Bộ xử lý thông báo với máy chủ ZooKeeper trên cổng 2181 theo các bước sau:
- Nếu bạn nhận thấy bất kỳ dấu hiệu nào khác, hãy liên hệ với Nhóm hỗ trợ Apigee.
Độ phân giải
Lưu ý: Chỉ người dùng Edge Private Cloud mới có thể thực hiện các bước sau. Nếu bạn đang sử dụng Edge Public Cloud, hãy liên hệ với Apigee Edge Support.
- Làm việc với nhóm phụ trách mạng lưới của bạn để:
-
- Đảm bảo cho phép kết nối giữa Trình xử lý thông báo và tất cả các nút ZooKeeper trên cổng 2181.
- Xoá mọi giới hạn tường lửa hoặc quy tắc bảo mật được thiết lập khỏi Bộ xử lý thư để cho phép kết nối với cổng 2181 trên máy chủ ZooKeeper.
- Nếu có sự cố mạng trên Bộ xử lý thông báo, việc khởi động lại Bộ xử lý thông báo cụ thể hiển thị lỗi (theo kết quả đầu ra trạng thái triển khai) có thể khắc phục được sự cố. Khởi động lại Bộ xử lý thư cụ thể:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Nếu sự cố vẫn tiếp diễn, hãy liên hệ với Bộ phận hỗ trợ của Apigee.
-