Spring Cloud Sidecar 未按预期工作
Spring Cloud Sidecar is not working as expected
根据文档,@EnableSidecar 注释充当希望在 Eureka 中注册的非 JVM 应用程序的代理。相应地,要设置的配置为:
sidecar:
port: 81 <-- Port of the non-JVM application
health-uri: http://10.135.16.50:${sidecar.port}/api/health.php <-- URI of the non-JVM application's health endpoint
home-page-uri: http://10.135.16.50:${sidecar.port}/
一旦 "sidecar" 启动并 运行ning,我们应该能够通过服务注册表调用非 JVM 端点之一,只需使用 "sidecar" 用于在 Eureka 中注册的应用程序。因此,例如,如果我们的 "sidecar" 应用程序在 Eureka 中注册为 "php-sidecar" 以代理具有端点的 PHP 应用程序,例如:
http://10.135.16.50:81/api/microservice.php
然后我们应该能够调用以下端点来访问非 JVM 应用程序(假设 "sidecar" 在 "localhost" 和端口 8080):
http://localhost:8080/php-sidecar/api/microservice.php
但是,这没有按预期工作。当我们请求上面的 URI 时,实际上发出了对 "localhost:81" 的请求,因为 "sidecar" 以某种方式获取了它的主机 URI,而不是定义为 sidecar 属性一部分的主页 uri。
如果我们 运行 在本地使用 localhost 的非 JVM 应用程序,那么一切都会按预期工作,但这绝对不是现实的用例。
因此,我在配置中缺少什么来告诉 Spring Cloud(在这种特殊情况下为 Zuul)使用非 JVM 主页-uri 而不是我的本地主机 URI?
感谢您的支持。
经过一番研究,事实证明,sidecar 必须始终与非 JVM 应用程序部署在同一主机上。
After some research, it turns out that the sidecar must always be deployed in the same host as the non-JVM application.
不,您可以将 sidecar.ip-address = 10.135.16.50
添加到 yaml
配置文件
我正在使用 spring-boot-starter-parent 版本是 1.5.6.RELEASE
工作正常
根据文档,@EnableSidecar 注释充当希望在 Eureka 中注册的非 JVM 应用程序的代理。相应地,要设置的配置为:
sidecar:
port: 81 <-- Port of the non-JVM application
health-uri: http://10.135.16.50:${sidecar.port}/api/health.php <-- URI of the non-JVM application's health endpoint
home-page-uri: http://10.135.16.50:${sidecar.port}/
一旦 "sidecar" 启动并 运行ning,我们应该能够通过服务注册表调用非 JVM 端点之一,只需使用 "sidecar" 用于在 Eureka 中注册的应用程序。因此,例如,如果我们的 "sidecar" 应用程序在 Eureka 中注册为 "php-sidecar" 以代理具有端点的 PHP 应用程序,例如:
http://10.135.16.50:81/api/microservice.php
然后我们应该能够调用以下端点来访问非 JVM 应用程序(假设 "sidecar" 在 "localhost" 和端口 8080):
http://localhost:8080/php-sidecar/api/microservice.php
但是,这没有按预期工作。当我们请求上面的 URI 时,实际上发出了对 "localhost:81" 的请求,因为 "sidecar" 以某种方式获取了它的主机 URI,而不是定义为 sidecar 属性一部分的主页 uri。
如果我们 运行 在本地使用 localhost 的非 JVM 应用程序,那么一切都会按预期工作,但这绝对不是现实的用例。
因此,我在配置中缺少什么来告诉 Spring Cloud(在这种特殊情况下为 Zuul)使用非 JVM 主页-uri 而不是我的本地主机 URI?
感谢您的支持。
经过一番研究,事实证明,sidecar 必须始终与非 JVM 应用程序部署在同一主机上。
After some research, it turns out that the sidecar must always be deployed in the same host as the non-JVM application.
不,您可以将 sidecar.ip-address = 10.135.16.50
添加到 yaml
配置文件
我正在使用 spring-boot-starter-parent 版本是 1.5.6.RELEASE
工作正常