Im ersten Teil dieses Artikels haben wir gelernt, wie wir die Leistung unserer Anwendungen verbessern können, indem wir Tomcat durch Undertow ersetzt haben Ein Hochleistungs-Webserver, zusätzlich zur Aktivierung und Konfiguration der Datenkomprimierung, um die Größe von HTTP-Antworten zu reduzieren, die über das Netzwerk übertragen werden.
Jetzt werden wir darüber sprechen, wie wir die Leistung von Spring Boot-Anwendungen im Persistenzteil verbessern können, aber zuerst müssen wir verstehen, was JPA, Hibernate und Hikari.
JPA oder Java Persistence API, das später in Jakarta Persistence umbenannt wurde, ist ein Java-Sprachstandard, der eine gemeinsame Sprache beschreibt Schnittstelle für Datenpersistenz-Frameworks
DieJPA-Spezifikation definiert die objektrelationale Zuordnung intern, anstatt sich auf herstellerspezifische Zuordnungsimplementierungen zu verlassen.
ÜberwinternHibernate ist eines der ORM-Frameworks, das die konkrete Umsetzung der JPA-Spezifikation ermöglicht. Das heißt, wenn diese Spezifikation die Notwendigkeit von Methoden zum Persistieren, Entfernen beschreibt, update und fetch data, die Person, die diese Verhaltensweisen tatsächlich aufbaut, ist Hibernate sowie EclipseLink , was ein weiterer ORM ist.
HikariHikari ist ein Verbindungspooling-Framework, das für die Verwaltung von Verbindungen zur Datenbank verantwortlich ist und sie offen hält, damit sie wiederverwendet werden können, d. h. Es handelt sich um einen Cache von Verbindungen für zukünftige Anfragen, der den Zugriff auf die Datenbank beschleunigt und die Anzahl der neu zu erstellenden Verbindungen reduziert.
Konfigurieren von Hikari, JPA und HibernateAnwendung.yml verwenden:
spring: hikari: auto-commit: false connection-timeout: 250 max-lifetime: 600000 maximum-pool-size: 20 minimum-idle: 10 pool-name: master jpa: open-in-view: false show-sql: true hibernate: ddl-auto: none properties: hibernate.connection.provider_disables_autocommit: true hibernate.generate_statistics: trueApplication.properties verwenden:
spring: hikari: auto-commit: false connection-timeout: 250 max-lifetime: 600000 maximum-pool-size: 20 minimum-idle: 10 pool-name: master jpa: open-in-view: false show-sql: true hibernate: ddl-auto: none properties: hibernate.connection.provider_disables_autocommit: true hibernate.generate_statistics: trueLassen Sie uns nun eine kurze Zusammenfassung der Optionen geben:
Hikari
Verbindungspool zurückgegebenen Verbindung Auto-Commit deaktiviert.
Pool wartet. Es ist vorzuziehen, ein kurzes Timeout festzulegen, um schnell fehlzuschlagen und eine Fehlermeldung zurückzugeben, anstatt den Client auf unbestimmte Zeit warten zu lassen.
Pools, einschließlich inaktiver und verwendeter Verbindungen, wodurch die maximale Anzahl aktiver Verbindungen zur Datenbank bestimmt wird. Wenn der Pool dieses Limit erreicht und keine inaktiven Verbindungen vorhanden sind, werden Aufrufe von getConnection() bis zu connectionTimeout Millisekunden lang blockiert, bevor sie fehlschlagen.
und erscheint hauptsächlich in Registrierungsverwaltungskonsolen und JMX zur Identifizierung von Pools und ihre Konfigurationen.
(Open Session In View) aktiviert ist, wird eine Sitzung sogar während der gesamten Anfrage aufrechterhalten ohne die @Transactional-Annotation. Dies kann zu Leistungsproblemen wie fehlenden Anwendungsantworten führen, da die Sitzung die Verbindung zur Datenbank bis zum Ende der Anfrage aufrechterhält.
Hibernate in Bezug auf das Schema der Datenbank. Es kann die folgenden Werte haben:
none: Tut nichts. Wir verwalten das Schema der Bank manuell.
Hibernate darüber, dass wir die automatische Festschreibung von Anbietern deaktiviert haben (PostgreSQL, MySQL usw.). Dies wirkt sich auf die Leistung aus, da Hibernate eine Verbindung vom Pool herstellen muss, um zu wissen, ob Auto-Commit aktiviert ist oder nicht , für jede Transaktion, die er durchführt.
Hikari-Einstellungen wie Auto-Commit und Pool-Größe , die von JPA und Hibernate mögen OSIV (Sitzung in Ansicht öffnen) und informieren Sie, dass wir Auto-Commit von Anbietern deaktiviert haben. Im nächsten Teil werden wir über Ausnahmen und deren Konfiguration sprechen, um Ressourcen aus der
JVM(Java Virtual Machine) zu sparen. Referenzen:
https://en.wikipedia.org/wiki/Jakarta_Persistence
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3