2017-06-08 10 views
0

私は、領事トポロジを持つswarmを使用してWebサービスを構築しました。私はこのようなトポロジに各チャンネルのサービスを宣伝する起動時のように、サービスは、いくつかの「チャンネル」のために提供されています:Wildflyトポロジー領事 - シャットダウン時に複数の登録抹消

protected void startup(@Observes @Initialized(ApplicationScoped.class) Object ignore) { 
    for (Channel channel : activeChannels) { 
     // do some init stuff 

     Topology.lookup().advertise(buildUniqueName(channel.name())); 
    } 
} 

これは素晴らしい働いていると私は右の名前で各サービスを見ることができ、IDと私の領事ネットワークをチェックします。

しかし、サーバーを停止すると、すべてのサービスを自動的に複数回(最大5回)登録解除しようとします。理解

INFO [org.wildfly.swarm.topology.consul.runtime.Advertiser] (MSC service thread 1-2) Deregister service service-name:<ip-and-port> 
INFO [org.wildfly.swarm.topology.consul.runtime.Advertiser] (MSC service thread 1-6) Deregister service service-name:<ip-and-port> 
INFO [org.wildfly.swarm.topology.consul.runtime.Advertiser] (MSC service thread 1-4) Deregister service service-name:<ip-and-port> 
INFO [org.wildfly.swarm.topology.consul.runtime.Advertiser] (MSC service thread 1-5) Deregister service service-name:<ip-and-port> 
INFO [org.wildfly.swarm.topology.consul.runtime.Advertiser] (MSC service thread 1-1) Deregister service service-name:<ip-and-port> 


ERROR [org.wildfly.swarm.topology] (Thread-26) WFSTOPO0002: Client not registered: [Registration: service-name; <ip-and-port>; [[http]]].: com.orbitz.consul.NotRegisteredException 
     at com.orbitz.consul.AgentClient.check(AgentClient.java:404) 
     at com.orbitz.consul.AgentClient.checkTtl(AgentClient.java:420) 
     at com.orbitz.consul.AgentClient.pass(AgentClient.java:427) 
     at org.wildfly.swarm.topology.consul.runtime.Advertiser.lambda$run$2(Advertiser.java:115) 
     at java.util.concurrent.ConcurrentHashMap$KeySpliterator.forEachRemaining(ConcurrentHashMap.java:3527) 
     at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) 
     at org.wildfly.swarm.topology.consul.runtime.Advertiser.run(Advertiser.java:113) 
     at java.lang.Thread.run(Thread.java:748) 

を:あなたはその後、サーバーがちょうどハングと例外がスクロールし始め、ログファイルにそのスクロールを見ることができます。ただし、問題はその後サーバーがシャットダウンプロセスを完了しないことです。それはちょうどハングアップします。

これはwildfly-swarmのバグですか、それともトポロジーを別の方法で使用する必要がありますか?

Wildfly群れバージョン2017.5.0 使用済みの分画トポロジ・領事、jaxrs、CDI、JPA、ロギング、闊歩 戦争包装、コードのバグであることが判明していない主なクラス

+0

で修正される予定)Topology.lookupの逆(される。(宣伝)、シャットダウン時の私の理解から – Ken

+0

削除される倍数はありませんように領事広告主はサービスを単独で追跡し、停止時にサービスを削除します。サービスはシャットダウン時に領事からきれいに削除されます...問題は、サービスごとに1回だけでなく複数回削除されるということです。 – Lasrik

+0

これは、「シャットダウン」のプロセスを傍受して各サービスを一度シャットダウンするようにトポロジに指示します。 – Ken

答えて

関連する問題