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

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Belirti

API proxy düzeltmelerinin Edge Kullanıcı Arayüzü veya Edge management API aracılığıyla dağıtılması ZooKeeper hatası "Yol için alt öğeler getirilirken hata oluştu".

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 genel nedeni İleti İşlemcisi ile ve ZooKeeper'ı kullanıyor.

Teşhis

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

  1. Hatayı gösteren spesifik API'nin dağıtım durumu çıktısını almak için aşağıdaki Management API çağrısı:
    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 kontrol etme (/opt/apigee/var/log/edge-message-processor/system.log).

    İleti İşleyici günlüğündeki ö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österilene benzer bir hata görürseniz aşağıdaki işlemi gerçekleştirin için şu adımları izleyin:
    1. İleti İşleyici ile ZooKeeper sunucularına 2181 numaralı bağlantı noktası arasındaki bağlantıyı test etme şu adımları uygulayın:
      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" yanıtını alırsanız veya "Bağlantı zaman aşımına uğradı" demek yerine ağ operasyonları ekibi. Aşağıdaki Çözünürlük 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. Şu durumda: Edge Public Cloud kullanıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.

  1. Ağ ekibinizle birlikte çalışarak:
      1. Mesaj İşleyici ve tüm ZooKeeper'lar arasında bağlantıya izin verildiğinden emin olun. düğümler için bağlantı noktası 2181'dir.
      2. İleti İşleyicileri'nden tüm güvenlik duvarı kısıtlamalarını veya güvenlik kuralları ayarlarını kaldırarak ZooKeeper sunucularında 2181 numaralı bağlantı noktasına bağlantıya izin verir.
    1. Mesaj İşleyici'de ağ sorunu varsa ilgili Hatayı gösteren İleti İşleyici (dağıtım durumu çıktısına göre) . Söz konusu 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.