我有一个非常简单的边车应用程序 - 只需要注释和主要方法,如下所示:
@SpringBootApplication
@EnableSidecar
public class SidecarApplication {
...
}
我也在后面有一个服务,位于同一个主机上,它有一个GET / joke端点。
边车配置:
server.port=5678
spring.application.name=joker
sidecar.port=8083
sidecar.home-page-uri=http://localhost:8083/
sidecar.health-uri=http://localhost:8083/health.json
management.security.enabled=false
logging.level.root=DEBUG
但是,在调用GET http://localhost:5678/joke时,我得到404.如果我调用GET http://localhost:8083/joke,我会得到有效的回复。
现在,如果我将其添加到边车配置中:
zuul.routes.joker.url=http://localhost:8083/
然后调用GET http://localhost:5678/joker/joke按预期工作。
我错过了什么,或者这是预期的行为?我原本期望边车不需要额外的配置来将所有传入的请求路由到包装的服务,并且我希望url用于访问sidecar后面的服务而不需要包含服务名称
答案 0 :(得分:0)
我认为您需要在application.properties中添加更多类似的符号:
public void DoSomething(in Pair p) {
p.x = 0; // illegal
p = new Pair(0, 0); // also illegal
}
在应用程序中应具有以下3种表示法
spring.application.name = joke
server.port = 5678
eureka.client.serviceUrl.defaultZone = http: // localhost: 9000 / eureka
eureka.client.register-with-eureka = true
eureka.client.fetch-registry = true
sidecar.port = 8083
sidecar.health-uri = http: // localhost: 8083 / health
management.security.enabled = false
/ * example * /
zuul.routes.wstore.path = / wstore / **
zuul.routes.wstore.url = http: // localhost: 8083
请注意,此配置对于1.5.6.RELEASE的春季启动很有用
答案 1 :(得分:0)
如果您使用 Eureka
,则路由是透明的。 sidecar
应用向 Eureka
注册自己,但将 Eureka homePageUrl
对象的 InstanceInfo
值设置为微服务的实际主机和端口。这就是您的客户将用于调用您的微服务的价值。