[英]Register multiple Instances of a Spring Boot Eureka Client from a single host
[英]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.