簡體   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