[英]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.