繁体   English   中英

Eureka从一个Spring Boot应用程序注册多个实例

[英]Eureka Register multiple instances from one spring boot application

我有一个与设备接口的spring boot应用程序。 假设它们是打印机。 显然,每台打印机一次只能处理一项任务。 我可能有两台打印机连接到一台主机。 我可能有另一台主机连接了其他打印机。

我希望将打印机注册到Eureka服务器。 我想基于连接的打印机而不是主机应用程序来进行负载平衡。 如果我对应用程序本身进行负载平衡,那么我也将需要在主机应用程序中具有负载平衡逻辑。

如何从Spring Boot应用程序手动将“实例”注册到eureka服务器?

我也遇到了这个问题,事实证明,注册多个应用程序实例并不是一件容易的事。 我发现的问题是,至少从Eureka Client 1.9.3开始, DiscoveryClient绑定到单个ApplicationInfoManager对象,这意味着它一次只能跟踪一个实例。

我正在使用的解决方法是创建多个DiscoveryClient并自行管理它们。 这不是理想的,因为客户端是非常重的对象(多个线程池,Jersey客户端等)。 Spring Boot Cloud Eureka的自动配置会自动创建很多我必须复制的bean。 我在下面包括了相关的代码,以防其他任何人迷惑于此问题。

首先,配置Spring Boot应用程序以向Eureka注册:

eureka.client.register-with-eureka=true
eureka.instance.appname=my-app
eureka.instance.instance-id=my-app:${HOSTNAME}:${random.uuid}

这是主要的Spring Boot应用程序的代码要点:

https://gist.github.com/michael-pratt/30517da70da3e00a902a40116e2f87f8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM