无法从wildfly-swarm-examples/ribbon-consul中的wildfly-swarm实例找到领事服务 [英] Unable to locate consul service with wildfly-swarm instance from wildfly-swarm-examples/ribbon-consul

查看:144
本文介绍了无法从wildfly-swarm-examples/ribbon-consul中的wildfly-swarm实例找到领事服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

遵循 ribbon-consul示例中的指示我从

consul agent -dev

然后在此示例的父文件夹中

then in parent folder of this example

mvn verify -Pconsul  -Dswarm.consul.url=http://localhost:8500

从我收集到的信息来看,这是领事的默认位置,因此我也没有使用它,只得到了相同的结果. Task最终会启动所有服务,但是无法向领事注册,并显示以下输出:

From what I gather this is the default location of consul, so I also ran it without, only to have the same result. Task eventually starts all services, however fails to register with consul, with output:

2017-08-25 16:54:00,324 INFO  [org.wildfly.swarm.runtime.deployer] (main) deploying time.war
2017-08-25 16:54:00,354 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-8) WFLYSRV0027: Starting deployment of "time.war" (runtime-name: "time.war")
2017-08-25 16:54:01,778 WARN  [org.jboss.as.dependency.private] (MSC service thread 1-3) WFLYSRV0018: Deployment "deployment.time.war" is using a private module ("io.netty:main") which may be changed or removed in future versions without notice.
2017-08-25 16:54:01,923 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0018: Host default-host starting
2017-08-25 16:54:02,036 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service swarm.topology.register.time.http: org.jboss.msc.service.StartException in service swarm.topology.register.time.http: com.orbitz.consul.ConsulException: Invalid service address
    at org.wildfly.swarm.topology.deployment.RegistrationAdvertiser.start(RegistrationAdvertiser.java:79)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)
Caused by: com.orbitz.consul.ConsulException: Invalid service address
    at com.orbitz.consul.AgentClient.register(AgentClient.java:180)
    at com.orbitz.consul.AgentClient.register(AgentClient.java:184)
    at org.wildfly.swarm.topology.consul.runtime.Advertiser.advertise(Advertiser.java:65)
    at org.wildfly.swarm.topology.consul.runtime.ConsulTopologyConnector.advertise(ConsulTopologyConnector.java:60)
    at org.wildfly.swarm.topology.deployment.RegistrationAdvertiser.start(RegistrationAdvertiser.java:77)
    ... 5 more

2017-08-25 16:54:02,203 INFO  [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 7) RESTEASY002225: Deploying javax.ws.rs.core.Application: class org.wildfly.swarm.generated.WildFlySwarmDefaultJAXRSApplication
2017-08-25 16:54:02,221 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 7) WFLYUT0021: Registered web context: /
2017-08-25 16:54:02,242 ERROR [org.jboss.as.controller.management-operation] (main) WFLYCTL0013: Operation ("add") failed - address: (("deployment" => "time.war")) - failure description: {
    "WFLYCTL0080: Failed services" => {"swarm.topology.register.time.http" => "org.jboss.msc.service.StartException in service swarm.topology.register.time.http: com.orbitz.consul.ConsulException: Invalid service address
    Caused by: com.orbitz.consul.ConsulException: Invalid service address"},
    "WFLYCTL0412: Required services that are not installed:" => ["swarm.topology.register.time.http"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => undefined
}
2017-08-25 16:54:02,244 ERROR [org.jboss.as.server] (main) WFLYSRV0021: Deploy of deployment "time.war" was rolled back with the following failure message: 
{
    "WFLYCTL0080: Failed services" => {"swarm.topology.register.time.http" => "org.jboss.msc.service.StartException in service swarm.topology.register.time.http: com.orbitz.consul.ConsulException: Invalid service address
    Caused by: com.orbitz.consul.ConsulException: Invalid service address"},
    "WFLYCTL0412: Required services that are not installed:" => ["swarm.topology.register.time.http"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => undefined
}
2017-08-25 16:54:02,250 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 7) WFLYUT0022: Unregistered web context: /
2017-08-25 16:54:02,254 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0019: Host default-host stopping
2017-08-25 16:54:02,272 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0028: Stopped deployment time.war (runtime-name: time.war) in 28ms
2017-08-25 16:54:02,273 INFO  [org.jboss.as.controller] (main) WFLYCTL0183: Service status report
WFLYCTL0186:   Services which failed to start:      service swarm.topology.register.time.http

2017-08-25 16:54:02,275 ERROR [stderr] (main) Exception in thread "main" java.lang.reflect.InvocationTargetException
2017-08-25 16:54:02,275 ERROR [stderr] (main)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2017-08-25 16:54:02,275 ERROR [stderr] (main)   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2017-08-25 16:54:02,275 ERROR [stderr] (main)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2017-08-25 16:54:02,275 ERROR [stderr] (main)   at java.lang.reflect.Method.invoke(Method.java:498)
2017-08-25 16:54:02,275 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.MainInvoker.invoke(MainInvoker.java:39)
2017-08-25 16:54:02,276 ERROR [stderr] (main)   at org.wildfly.swarm.bootstrap.MainInvoker.main(MainInvoker.java:92)
2017-08-25 16:54:02,276 ERROR [stderr] (main) Caused by: org.wildfly.swarm.container.DeploymentException: org.wildfly.swarm.container.DeploymentException: WFSWARM0004: Deployment failed: {"WFLYCTL0080: Failed services" => {"swarm.topology.register.time.http" => "org.jboss.msc.service.StartException in service swarm.topology.register.time.http: com.orbitz.consul.ConsulException: Invalid service address
2017-08-25 16:54:02,276 ERROR [stderr] (main)     Caused by: com.orbitz.consul.ConsulException: Invalid service address"},"WFLYCTL0412: Required services that are not installed:" => ["swarm.topology.register.time.http"],"WFLYCTL0180: Services with missing/unavailable dependencies" => undefined}
2017-08-25 16:54:02,276 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:301)
2017-08-25 16:54:02,276 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:174)
2017-08-25 16:54:02,276 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeDeployer$Proxy$_$$_WeldClientProxy.deploy(Unknown Source)
2017-08-25 16:54:02,277 ERROR [stderr] (main)   at org.wildfly.swarm.Swarm.deploy(Swarm.java:467)
2017-08-25 16:54:02,277 ERROR [stderr] (main)   at org.wildfly.swarm.examples.netflix.ribbon.time.Main.main(Main.java:19)
2017-08-25 16:54:02,277 ERROR [stderr] (main)   ... 6 more
2017-08-25 16:54:02,278 ERROR [stderr] (main) Caused by: org.wildfly.swarm.container.DeploymentException: WFSWARM0004: Deployment failed: {"WFLYCTL0080: Failed services" => {"swarm.topology.register.time.http" => "org.jboss.msc.service.StartException in service swarm.topology.register.time.http: com.orbitz.consul.ConsulException: Invalid service address
2017-08-25 16:54:02,278 ERROR [stderr] (main)     Caused by: com.orbitz.consul.ConsulException: Invalid service address"},"WFLYCTL0412: Required services that are not installed:" => ["swarm.topology.register.time.http"],"WFLYCTL0180: Services with missing/unavailable dependencies" => undefined}
2017-08-25 16:54:02,278 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:296)
2017-08-25 16:54:02,278 ERROR [stderr] (main)   ... 10 more

每次启动事件服务时都会重复此操作.前端在http://:8300上报告领事服务.

This is repeated for every time and event service started. Frontend reports consul service at http://:8300.

从具有偏移量的想法开始运行主要方法会很好(前端返回403:禁止,但这是另一个问题)

Starting main methods from idea with offset will perform fine (tho frontend returns 403:forbidden, but that is an another issue)

我是否缺少某些东西,因为这似乎是一个很简单的错误示例?

Is there something I am missing, because this seems like a pretty simple example to be bugged?

受影响的示例版本为2017.9.0-SNAPSHOT2017.8.1.

Versions of examples affected are 2017.9.0-SNAPSHOT and 2017.8.1.

推荐答案

领事客户端异常无效的服务地址"表示该服务正在使用IP"0.0.0.0"注册.参见领事源代码

Consul client exception "Invalid service address" indicates that service is being registered with IP "0.0.0.0". See consul source code

默认情况下,Swarm的"swarm.bind.address"属性的默认值为"0.0.0.0",这意味着接受Swarm的所有接口"的连接. 看来该IP已用于注册要咨询的服务.

By default, Swarm has default value "0.0.0.0" for "swarm.bind.address" property, which means accepting connections for "all interfaces" to Swarm. It seems that this IP is being used to register service to consul.

尝试为每个进程在test/pom.xml中指定swarm.bind.address系统属性.

Try to specify swarm.bind.address system property in test/pom.xml for every process e.g.

    <process>
        <artifactId>example-ribbon-consul-time</artifactId>
        <properties>
           <swarm.http.port>8081</swarm.http.port>
           <swarm.bind.address>127.0.0.1</swarm.bind.address>
        </properties>
    </process>

这篇关于无法从wildfly-swarm-examples/ribbon-consul中的wildfly-swarm实例找到领事服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆