Yol için Alt Öğeler Getirilirken Hata Oluştu

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Belirti

API proxy düzeltmelerinin Edge kullanıcı arayüzü veya Edge Management API üzerinden dağıtımı, ZooKeeper "Error whenılır by path" (Yol için alt öğeler getirilirken hata oluştu) mesajıyla başarısız oluyor.

Hata mesajları

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 = []};

Olası Nedenler

Bu hatanın tipik nedeni, Mesaj İşleyici ile ZooKeeper arasındaki ağ bağlantısı sorunudur.

Teşhis

Not: Aşağıdaki adımları yalnızca Edge Private Cloud kullanıcıları gerçekleştirebilir. Edge Public Cloud'daysanız Apigee Edge Destek Ekibi ile iletişime geçin.

  1. Aşağıdaki Management API çağrısını kullanarak hatayı gösteren belirli API için dağıtım durumu çıkışını alın:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
    

    Hatayı gösteren örnek dağıtım durumu çıkışı:

    { 
    "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" 
    },
    
  2. Mesaj İşleyici'yi (/opt/apigee/var/log/edge-message-processor/system.log) kontrol edin.

    İleti İşleyici günlüğünden örnek hata

    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
    
  3. Yukarıdaki örnekte gösterildiğine benzer bir hata görürseniz aşağıdaki adımları uygulayın:
    1. Aşağıdaki adımları kullanarak Mesaj İşleyici ile 2181 numaralı bağlantı noktasındaki ZooKeeper sunucuları arasındaki bağlantıyı test edin:
      1. Telnet kullanılabiliyorsa telnet'i kullanın:
        telnet <ZooKeeper-IP> 2181
        
      2. Telnet kullanılamıyorsa bağlantıyı aşağıdaki şekilde kontrol etmek için netcat'i kullanın:
        nc -vz <ZooKeeper-IP> 2181
        
      3. "Bağlantı Reddedildi" veya "Bağlantı zaman aşımına uğradı" yanıtını alırsanız ağ işlemleri ekibinizle iletişime geçin. Aşağıdaki Çözüm bölümüne gidin.
  4. Başka bir durumla karşılaşırsanız Apigee Edge Destek Ekibi ile iletişime geçin.

Çözünürlük

Not: Aşağıdaki adımları yalnızca Edge Private Cloud kullanıcıları gerçekleştirebilir. Edge Public Cloud'daysanız Apigee Edge Destek Ekibi ile iletişime geçin.

  1. Ağ ekibinizle birlikte çalışarak:
      1. Mesaj İşleyici ile 2181 numaralı bağlantı noktasındaki tüm ZooKeeper düğümleri arasında bağlantıya izin verildiğinden emin olun.
      2. ZooKeeper sunucularında 2181 numaralı bağlantı noktasına bağlantı sağlamak için Mesaj İşleyicilerinden güvenlik duvarı kısıtlamalarını veya ayarlanan güvenlik kurallarını kaldırın.
    1. Mesaj İşleyici'de ağ sorunu varsa hatayı gösteren belirli Mesaj İşleyiciyi yeniden başlatmak (dağıtım durumu çıkışına göre) sorunu çözebilir. İlgili Mesaj İşleyiciyi yeniden başlatın:
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      

    Sorun devam ederse Apigee Edge Destek Ekibi ile iletişime geçin.