Ich benutze Spring Boot und Winterschlaf über Jpa mit Tomcat Connection Pooling. Können Sie mir bitte helfen, zu verstehen, wie der Frühling DB-Verbindungen während der Transaktionen benutzt. Zum Beispiel folgendes Szenario in Betracht ziehen:Spring Transaktion Grenze und DB-Verbindung mit
- Wir haben DB Verbindungspool von 2 Verbindungen.
- Spring startet eine Transaktion, d. H. Aufrufmethode, die mit @Transactional Annotation versehen ist.
- Diese Methode tun, um ein DB-Update
- Die externe Dienstleistung
- Als Reaktion fordert von dem externen Dienst empfangen wird, aktualisiert er DB und zurück.
- Frühling verpflichtet die Transaktion
den externen Dienst Angenommen (Schritt 4) dauert nur 1 Minute zu vervollständigen, wie viele DB-Verbindungen wird im DB-Pool zur Verfügung ?. Angenommen, Spring hält die DB-Verbindung aufrecht, bis die Transaktion abgeschlossen ist. Für jede Anfrage, die während dieser Zeit empfangen wird, steht nur eine DB-Verbindung zur Verfügung. Wenn wir mehr als eine Anfrage erhalten haben, müssen sie auf die DB-Verbindung warten.
Bitte bestätigen Sie mein Verständnis und wenn es korrekt ist, schlagen Sie vor, wie ich mit dieser Situation in einem System mit hohen Transaktionsvolumen umgehen kann.
Dank