我有以下服务:
是否有办法获取客户端服务的ip,以便我可以从Finder服务向其发出请求。
我知道有一种方法可以从EurekaServer找到InstanceInfo,我正在考虑在eureka服务器中创建一个控制器,在那里您可以传递服务ID并获得服务的实例ip。这样,Finder-service只需要知道服务ID和eureka ip,因为它在那里注册。
还有比这更干净的解决方案吗?
要使用客户端发现,首先需要通过将@enableeruekaclient
或@EnableDiscoveryClient
添加到@springbootplication
注释类(或专用的@配置
)来启用。
接下来,要利用要使用的实际服务实例的解析,您需要创建一个负载平衡的restemplate
。这将添加一个拦截器,该拦截器将服务名称转换为ip地址/DNS名称以向其发送请求(如果发现多个实例,它将在这些实例之间分配负载)。
要创建负载平衡的restemplate
请将@LoadBalanced
注释添加到配置的restemplate
。
@Bean
@LoadBalanced
public RestTemplate restTemplate(RestTemplateBuilder rtb) {
return rtb.build();
}
现在,当通过restemplate
执行请求时,它会将服务名称客户机服务
解析为要使用的实际服务实例。不用你做任何事。
pom.xml 主应用程序类 Application.Properties eureka客户端设置 pom.xml Application.Properties 我在eureka-server仪表板(http://localhost:8761)中没有看到向Eureka server注册的micro-service-currency-exchange-service 为什么eureka客户端没有注册
我对docker,Spring框架的一切都很陌生…它们成功地在localhost环境中运行,现在我想把它们推送到docker中,但是总是给我错误,我在那里卡住了大约一周。有人能帮我弄清楚吗!!! 现在我有 eureka 服务器和云配置服务器服务,这是我的代码: 尤里卡服务器应用程序.yml 和 Dockerfile: 现在我有云配置服务器应用程序.yml:在这个文件中,我试图在github上备份它
我想在Spring启动的eureka服务器上注册Grails 2.4.4中的eureka客户端。 我已经在同一台eureka服务器上从spring boot注册了另一个eureka服务,它运行良好。当我运行grails应用程序时,它会给我一个错误: 这是我的申请表。属性文件: 任何帮助都是值得的。 谢谢
在Spring中,启动服务具有@EnableDiscoveryClient注释,但我们不指定运行Eureka服务器的端口。那个么,服务如何确定Eureka服务器运行在哪个端口上呢?