Spring Boot Load Balancing

OnDemand

Top Contributor
Hallo zusammen,

beschäftige mich grad mit dem Loadbalancing von Spring Boot und hab da ein wenig rumgespielt, nun kommen ein paar Fragen. Vielleicht hat jemand Ahnung von der Materie ich werd aus den englisch/indischen Tutorials nicht schlau.

Im Einsatz hab ich Zuul ApiGateway, Eureka als Nameserver und meinen Service.

Meinen Service hab ich auf einem Server 2x laufen, sagen wir als Service1 und Service2 unter verschiedenen Ports, die registrieren sich auch bei Eureka alles super. Wenn ich jetzt meinen Service mit Anfragen bombardiere, wird die ganze Zeit nur in das logfile von Serivce1 gelogged, der Service 2 auf dem anderen Port hat nix zu tun.

Ist das so gewollt, springt Service 2 nur ein wenn der 1 offline ist? Oder wie wird die Last verteilt?

Ich habe einen kritischen Service den ich sehr selten neustarten kann um ihn zu aktualisieren. Nun wollte ich diesen service auch 2 mal aufsetzen. Wenn ich ihn updaten will, würde ich das jar file deployen auf service2, hochfahren.
Den Service1 würde ich dann herunterfahren, während dessen übernimmt service 2.

Aber wie kann ich dem Service 1 mitteilen "keine Anfragen mehr annehmen, aber was er noch macht soll er fertig machen"
 
K

kneitzel

Gast
Also die Frage ist, was Du genau gemacht hast und was Du derzeit ansprichst.

Wie du mit Zuul und Eureka ein LoadBalancing aufbauen kannst, zeigt baeldung z.B. unter https://www.baeldung.com/zuul-load-balancing.
(Round Robin ist da der Standard so wie ich den Artikel verstehe!)

Wenn Du einen Service stoppst, dann sollte er sich direkt beim load balancer abmelden, so dass der direkt keine Requests mehr bekommt. Im Rahmen eines Absturzes oder so, erfolgt das nicht und dann gehen da noch eine gewisse Zeit Requests ins "Leere", bis da halt erkannt wird, dass der Service nicht mehr lebt. (Da kenne ich die genauen Details von Zuul und Eureka aber nicht). Da ich mit Zuul / Eureka als Load Balancer keine Erfahrungen habe, müsstest Du das einfach einmal austesten....

So wie ich das aktuelle Verhalten verstehe scheinst Du derzeit lediglich Eureka zu nutzen, um ein Discovery des Services zu haben. Das könnte für Dein Szenario aber auch schon ausreichen, so Du nur den Wartungsfall abdecken willst. Dann würdest Du einen zweiten Service melden um dann den ersten herunter zu fahren ...

Das einfach einmal aus meiner Sicht, wobei ich wie gesagt mit diesen LoadBalancern keine Erfahrung habe. Bezüglich LoadBalancer habe ich bisher nur auf F5 Basis Erfahrungen gesammelt ...
 

OnDemand

Top Contributor
Danke schon mal für Deine Einschätzung! Das klingt erstmal gut mit dem Wartungsmodus sollte das eigentlich klappen. Ich werde es mal testen.

Was mir aber noch bisschen aufstößt; Sagen wir ich habe einen Service, der irgendwas logisches macht. Derbekommt Requests mit Daten aus einem Gerät und berechnet irgendwelche Sachen mit den Daten. Das dauert aber unter Umständen sehr lange. Nun ist da ein Bug in der Berechnung - gibt es eine Möglichkeit per Hotswapping oder irgendsowas in den laufenden Service zu grätschen und zu updaten ohne was anzuhalten ? Ne oder
 

mrBrown

Super-Moderator
Mitarbeiter
Was mir aber noch bisschen aufstößt; Sagen wir ich habe einen Service, der irgendwas logisches macht. Derbekommt Requests mit Daten aus einem Gerät und berechnet irgendwelche Sachen mit den Daten. Das dauert aber unter Umständen sehr lange. Nun ist da ein Bug in der Berechnung - gibt es eine Möglichkeit per Hotswapping oder irgendsowas in den laufenden Service zu grätschen und zu updaten ohne was anzuhalten ? Ne oder
Nein, da ist das Problem aber weniger auf technischer Seite, sondern mehr auf logischer und semantischer.

Was soll denn passieren, wenn die Berechnung grad mit der Hälfte fertig ist, dann die Berechnung selbst geändert wird?
  1. Alle bereits berechneten Ergebnisse sind ungültig und die Berechnung muss von vorne starte?
  2. Alles bereist berechnete bleibt gültig, nur der Rest wird nach der neuen "Rechenart" berechnet?
  3. Die Berechnung wird einfach fortgeführt, erst alle nach dem Update gestarteten Berechnungen werden mit der neuen "Rechenart" durchgeführt?

Mal als ganz plumpes Beispiel: Bild soll von farbig nach Graustufen konvertiert werden. Bild ist riesig groß (alternativ: jeweils N Bilder als Batch), deshalb dauert's lange. Entwickler hat dummerweise schwarz und weiß vertauscht:
  1. Das Bild wird neu von vorn konvertiert, ist danach passend vorliegen (oder bei Batch: alle bereist konvertierten werden verworfen, alle sind danach korrekt konvertiert)
  2. Die Hälfte des Bildes ist mit umgekehrten Farben, die andere passend, Bild ist also kaputt. (oder bei Batch: Hälfte sieht aus wie gewünscht, andere Hälfte sieht scheiße aus)
  3. Das ganze Bild ist falsch, erst alle danach sind richtig.

Variante 1 & 3 lassen sich lösen, ohne das man diesen einen Service dafür im laufenden Betrieb updaten muss. Variante 2 nicht, das wäre aber ich in den meisten Fällen dämlich.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Spring Boot Test Assertions mit Objekten Frameworks - Spring, Play, Blade, Vaadin & Co 6
8u3631984 Pfad zu Test Datei in application.yml in Spring Boot Test Frameworks - Spring, Play, Blade, Vaadin & Co 7
R Spring Boot sql Beziehungen Frameworks - Spring, Play, Blade, Vaadin & Co 12
M Spring Boot 3 Datenbanken zur Laufzeit Verbinden Frameworks - Spring, Play, Blade, Vaadin & Co 5
ExceptionOfExpectation In Meiner Spring-Boot Applikation verlangt die Datenbank Wert für eine ID Frameworks - Spring, Play, Blade, Vaadin & Co 5
H Spring Boot Applikation und JHM Benchmark sowie ContextConfiguration in H2 Tests ich bekomme es nicht hin Frameworks - Spring, Play, Blade, Vaadin & Co 2
ExceptionOfExpectation Tests in Spring-Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
Avalon Get Request doppelt abfeuern ohne Post Redirect Get Pattern. Spring Boot Thymeleaf MVC Frameworks - Spring, Play, Blade, Vaadin & Co 12
thor_norsk Konfigurationsprobleme mit Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 9
R Spring Boot Integration-testing mit Keycloak Frameworks - Spring, Play, Blade, Vaadin & Co 1
R Spring Boot Integration-testing mit Keycloak Frameworks - Spring, Play, Blade, Vaadin & Co 13
thor_norsk Spring Boot Fehler Frameworks - Spring, Play, Blade, Vaadin & Co 1
thor_norsk Spring Boot und Docker Frameworks - Spring, Play, Blade, Vaadin & Co 5
D Spring Boot Test ob Validation geprüft wurde Frameworks - Spring, Play, Blade, Vaadin & Co 8
K Spring Boot OneToMany Frameworks - Spring, Play, Blade, Vaadin & Co 6
8u3631984 Spring Boot Docker Image erstellen und mit docker-compose konfigurieren Frameworks - Spring, Play, Blade, Vaadin & Co 1
gradlew.bat spring-boot:run funktioniert nicht Frameworks - Spring, Play, Blade, Vaadin & Co 4
Zrebna Spring Boot/Thymeleaf: Bestätigungsemail senden. Frameworks - Spring, Play, Blade, Vaadin & Co 2
B Spring Boot und JPA Error creating bean Frameworks - Spring, Play, Blade, Vaadin & Co 24
R Spring Boot: Warum soll PasswordEncoder in einer neuen Methode definiert sein? Frameworks - Spring, Play, Blade, Vaadin & Co 1
D Spring Boot und Microservices Frameworks - Spring, Play, Blade, Vaadin & Co 1
M Spring Boot additional Datasource for a single entity Frameworks - Spring, Play, Blade, Vaadin & Co 0
Avalon Wie sieht bei Euch das Deployment einer Spring Boot Anwendung aus? Frameworks - Spring, Play, Blade, Vaadin & Co 4
M Threads in Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 7
W DI-Problem in Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
T Spring Boot: Was bewirkt parent in maven genau? Frameworks - Spring, Play, Blade, Vaadin & Co 4
OnDemand Vaadin+Spring Boot erster Seitenload nach Neustart endlos Frameworks - Spring, Play, Blade, Vaadin & Co 0
doncarlito87 Wie erhalte ich ein JSON aus eine NativeQuery (Spring Boot)? Frameworks - Spring, Play, Blade, Vaadin & Co 8
Avalon @Query Select Abfrage liefert falsche Werte (Spring Boot, JPA, Hibernate) Frameworks - Spring, Play, Blade, Vaadin & Co 3
Avalon Erstellung Dockerimage mit spring-boot:build-image in Spring Boot mit Umgebungsvariablen Frameworks - Spring, Play, Blade, Vaadin & Co 0
D Spring Boot Field Injection in MapStruct Frameworks - Spring, Play, Blade, Vaadin & Co 5
OnDemand Spring Boot seltsame Logeinträge: Manipulationsversuche? Frameworks - Spring, Play, Blade, Vaadin & Co 2
D Spring Boot Mile Stone und Snapshot Versionen Frameworks - Spring, Play, Blade, Vaadin & Co 2
OnDemand Spring Boot Exception Body Frameworks - Spring, Play, Blade, Vaadin & Co 2
N Spring Boot - Overkill für private Projekte? Frameworks - Spring, Play, Blade, Vaadin & Co 3
K Migration eines internen Frameworks zu Spring:Boot Frameworks - Spring, Play, Blade, Vaadin & Co 0
Z Hibernate & Postgres in Spring Boot (Syntaxprobleme) Frameworks - Spring, Play, Blade, Vaadin & Co 2
Z Spring Boot mit JPA;, Hibernate, Rest & Lombok Frameworks - Spring, Play, Blade, Vaadin & Co 8
OnDemand Spring Security/Boot/Vaadin Cookie Problem bei iFrame Frameworks - Spring, Play, Blade, Vaadin & Co 4
OnDemand Spring Boot: Feld ignorieren Frameworks - Spring, Play, Blade, Vaadin & Co 3
N Buch zum Spring Framework bzw. Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 3
OnDemand Jasypt Spring Boot HIbernate wie komme ich an den Key? Frameworks - Spring, Play, Blade, Vaadin & Co 4
8u3631984 Spring Boot im Docker Container - Logback wird nicht verwendet Frameworks - Spring, Play, Blade, Vaadin & Co 13
sascha-sphw Spring Boot Resource Server (OAuth2) @MockMvc Frameworks - Spring, Play, Blade, Vaadin & Co 5
OnDemand Spring Boot CDN Frameworks - Spring, Play, Blade, Vaadin & Co 1
OnDemand Spring Boot Deserialiserung mit JSON Frameworks - Spring, Play, Blade, Vaadin & Co 9
OnDemand Spring Boot POST zu PHP API Frameworks - Spring, Play, Blade, Vaadin & Co 12
OnDemand Spring Boot WebClient ErrorHandling Frameworks - Spring, Play, Blade, Vaadin & Co 5
8u3631984 Spring boot : Unique Constraint mit Many to Many Frameworks - Spring, Play, Blade, Vaadin & Co 2
OnDemand Spring Boot Repository null Frameworks - Spring, Play, Blade, Vaadin & Co 1
OnDemand Spring Boot Limits API calls Frameworks - Spring, Play, Blade, Vaadin & Co 20
J Spring boot mit Keyclaok rollen basiert Frameworks - Spring, Play, Blade, Vaadin & Co 2
OnDemand Spring Boot Scheduler flexibel machen Frameworks - Spring, Play, Blade, Vaadin & Co 4
OnDemand Spring Boot + Vaadin API Security Frameworks - Spring, Play, Blade, Vaadin & Co 1
S Spring Boot und seine Module verstehen Frameworks - Spring, Play, Blade, Vaadin & Co 3
R Architektur für Spring Boot Projekt Frameworks - Spring, Play, Blade, Vaadin & Co 5
M Spring Boot, Versionskontrolle und Entwicklungsumgebung und Deployment Frameworks - Spring, Play, Blade, Vaadin & Co 2
Avalon Image aus JSON Objekt im Browser anzeigen (BLOB, extrahieren, konvertieren) Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
Avalon CSS Datei wird in Spring Boot mit Thymeleaf im Standardordner nicht gefunden Frameworks - Spring, Play, Blade, Vaadin & Co 3
OnDemand Spring Boot Mapping null bei GET Aufruf Frameworks - Spring, Play, Blade, Vaadin & Co 8
OnDemand Spring Boot Test mit Junit Frameworks - Spring, Play, Blade, Vaadin & Co 8
J Spring Boot - Reactor Frameworks - Spring, Play, Blade, Vaadin & Co 1
L Spring Boot, H2 und Restschnittstelle synchonisation mit Client Frameworks - Spring, Play, Blade, Vaadin & Co 10
TonioTec Spring Boot Datenbankabfrage Frameworks - Spring, Play, Blade, Vaadin & Co 7
OnDemand Spring Boot encoding Slash in URL Parameter Frameworks - Spring, Play, Blade, Vaadin & Co 7
S Spring Boot startet nicht Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Boot -> War File | 404 in Tomcat Frameworks - Spring, Play, Blade, Vaadin & Co 20
LimDul Spring Boot Anwendung "automatisch" neustarten Frameworks - Spring, Play, Blade, Vaadin & Co 3
A Spring boot Frameworks - Spring, Play, Blade, Vaadin & Co 18
bueseb84 Unit Test mit Spring Boot - Service Autowired Frameworks - Spring, Play, Blade, Vaadin & Co 5
OnDemand DTO <> Entity Hibernate Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 28
OnDemand Verständnisfrage DTO Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 19
S Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 1
OnDemand Spring Boot Threads Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Spring Boot: Wert aus Config Datei ermitteln Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Boot: Ein geschütztes Verzeichnis Frameworks - Spring, Play, Blade, Vaadin & Co 1
bueseb84 Probleme mit Spring Boot Docker und Bootstrap Frameworks - Spring, Play, Blade, Vaadin & Co 9
OnDemand Spring Boot Eureka/Zuul Frameworks - Spring, Play, Blade, Vaadin & Co 0
F Redirect in einer Spring Boot WebApplication Frameworks - Spring, Play, Blade, Vaadin & Co 7
B Erstes Spring Boot Projekt: Gameserver-Manager Frameworks - Spring, Play, Blade, Vaadin & Co 5
V Spring Boot, thymeleaf, Eingaben cashen oder per session speichern? Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring Boot Security Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Boot i18n Frameworks - Spring, Play, Blade, Vaadin & Co 28
bueseb84 Spring Boot : Update H2 Repository Frameworks - Spring, Play, Blade, Vaadin & Co 14
A Spring Boot/ OneToMany Relation Frameworks - Spring, Play, Blade, Vaadin & Co 29
S Spring Boot testen mit Service Klassen Frameworks - Spring, Play, Blade, Vaadin & Co 4
L Controller Spring Boot mit Java Frameworks - Spring, Play, Blade, Vaadin & Co 20
J Spring Boot H2 Datbase Frameworks - Spring, Play, Blade, Vaadin & Co 2
J Spring Boot Thymleaf mit Java.Optional Frameworks - Spring, Play, Blade, Vaadin & Co 0
L JavaFX Anwendung mit Spring Boot und mehrere FXML Forms Frameworks - Spring, Play, Blade, Vaadin & Co 5
P Mit Maven (und Spring-boot) ein FatJAR und ein EAR bauen Frameworks - Spring, Play, Blade, Vaadin & Co 3
OnDemand Spring Boot Basic Authentication langsam Frameworks - Spring, Play, Blade, Vaadin & Co 2
OnDemand Start Stop Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
H Spring Boot - Dependency Injection Frameworks - Spring, Play, Blade, Vaadin & Co 26
B Java Spring Boot - POM-Problem Frameworks - Spring, Play, Blade, Vaadin & Co 8
OnDemand Spring Boot parallele Requests Frameworks - Spring, Play, Blade, Vaadin & Co 1
OnDemand Spring Boot Resttemplate exchange XML Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Root-Pfad zu meiner Spring Boot Application Frameworks - Spring, Play, Blade, Vaadin & Co 3
OnDemand Spring Boot Error Logging Frameworks - Spring, Play, Blade, Vaadin & Co 5
OnDemand Spring Boot Transactions Frameworks - Spring, Play, Blade, Vaadin & Co 10

Ähnliche Java Themen

Neue Themen


Oben