私は、領事トポロジを持つ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、ロギング、闊歩 戦争包装、コードのバグであることが判明していない主なクラス
で修正される予定)Topology.lookupの逆(される。(宣伝)、シャットダウン時の私の理解から – Ken
削除される倍数はありませんように領事広告主はサービスを単独で追跡し、停止時にサービスを削除します。サービスはシャットダウン時に領事からきれいに削除されます...問題は、サービスごとに1回だけでなく複数回削除されるということです。 – Lasrik
これは、「シャットダウン」のプロセスを傍受して各サービスを一度シャットダウンするようにトポロジに指示します。 – Ken