1. Was ist der Unterschied zwischen JPA und Hibernate?
(Empfohlene Studie: Java-Interviewfragen)
JPA Java Persistence API ist die Standard-ORM-Schnittstelle von Java EE 5 und Teil der ejb3-Spezifikation.
Hibernate, ein heute sehr beliebtes ORM-Framework, ist eine Implementierung von JPA, seine Funktionalität ist jedoch eine Obermenge von JPA.
Die Beziehung zwischen JPA und Hibernate lässt sich einfach so verstehen, dass JPA die Standardschnittstelle und Hibernate die Implementierung ist. Wie stellt Hibernate diese Beziehung zu JPA her? Hibernate wird hauptsächlich durch drei Komponenten implementiert: Hibernate-Annotation, Hibernate-Entitymanager und Hibernate-Core.
hibernate-annotation ist die Basis für Hibernate zur Unterstützung der Annotationskonfiguration. Es umfasst Standard-JPA-Annotation und Annotation für die eigenen Sonderfunktionen von Hibernate.
hibernate-core ist die Kernimplementierung von Hibernate und stellt alle Kernfunktionen von Hibernate bereit.
hibernate-entitymanager implementiert Standard-JPA. Es kann als Adapter zwischen hibernate-core und JPA betrachtet werden. Es stellt keine direkten ORM-Funktionen bereit, unterstützt aber den hibernate-Core Sorgen Sie dafür, dass Hibernate den JPA-Spezifikationen entspricht.
2. Was ist Frühlingswolke?
Im wahrsten Sinne des Wortes ist Spring Cloud ein Framework für verteilte Systeme und Cloud-Dienste.
Spring Cloud ist ein neues Mitglied der gesamten Spring-Familie und ein unvermeidliches Produkt der jüngsten Popularität von Cloud-Diensten.
Spring Cloud stellt Entwicklern Tools zur Verfügung, mit denen sie schnell einige gängige Muster in verteilten Systemen erstellen können, wie zum Beispiel:
Konfigurationsmanagement
Service-Registrierung und -Erkennung
Leistungsschalter
Intelligentes Routing
Serviceübergreifende Anrufe
Lastausgleich
Micro Agent
Steuerbus
Einmaliger Token
Globale Sperre
Leiterwahl
Verteilte Sitzung
Clusterstatus
Verteilte Nachricht
…
Mit Spring Cloud können Entwickler Dienste und Anwendungen implementieren, die diese Muster sofort implementieren. Diese Dienste können in jeder Umgebung ausgeführt werden, einschließlich verteilter Umgebungen, sowie auf den eigenen Laptops der Entwickler und verschiedenen Hosting-Plattformen.
3. Welche Funktion hat der Spring Cloud-Leistungsschalter?
Hystrix wird in Spring Cloud verwendet, um die Funktion eines Leistungsschalters zu implementieren, der verhindern kann, dass eine Anwendung mehrmals versucht, einen Vorgang auszuführen, was bedeutet, dass er wahrscheinlich fehlschlägt Wenn der Fehler fortgesetzt werden muss, ohne auf die Fehlerbehebung zu warten oder CPU-Zyklen zu verschwenden, wird festgestellt, dass der Fehler dauerhaft ist.
Der Leistungsschaltermodus ermöglicht es Anwendungen auch, zu erkennen, ob ein Fehler behoben wurde, und die Anwendung kann versuchen, eine Aktion einzuleiten, wenn das Problem scheinbar behoben wurde.
Leistungsschalter verleihen einem System Stabilität und Flexibilität, indem sie für Stabilität sorgen, während sich das System nach einem Fehler erholt, und die Auswirkungen dieses Fehlers auf die Leistung minimieren. Es kann dazu beitragen, die Reaktionszeiten des Systems zu verkürzen, indem Anforderungen für einen Vorgang, der wahrscheinlich fehlschlägt, schnell abgelehnt werden, anstatt darauf zu warten, dass der Vorgang abläuft (oder nicht zurückkehrt).
Wenn ein Leistungsschalter jedes Mal, wenn er seinen Zustand ändert, ein Ereignis auslöst, können diese Informationen verwendet werden, um den Zustand der durch den Leistungsschalter geschützten Komponenten des Systems zu überwachen oder um Administratoren zu warnen, wenn ein Leistungsschalter auslöst auf Staat.
4. Was sind die Kernkomponenten von Spring Cloud?
1. Serviceerkennung – Netflix Eureka
Ein RESTful-Service, der zum Auffinden von Middle-Tier-Services verwendet wird, die in AWS-Regionen ausgeführt werden. Es besteht aus zwei Komponenten: Eureka-Server und Eureka-Client. Der Eureka-Server wird als Dienstregistrierungsserver verwendet.
Der Eureka-Client ist ein Java-Client, der die Interaktion mit dem Server vereinfacht, als Polling-Load-Balancer fungiert und Failover-Unterstützung für Dienste bietet. Netflix verwendet in seiner Produktionsumgebung einen separaten Client, der einen gewichteten Lastausgleich basierend auf Datenverkehr, Ressourcennutzung und Fehlerstatus bietet.
2. Clientseitiger Lastausgleich – Netflix Ribbon
Ribbon stellt hauptsächlich clientseitige Software-Lastausgleichsalgorithmen bereit. Die Ribbon-Client-Komponente bietet eine Reihe vollständiger Konfigurationsoptionen, z. B. Verbindungszeitlimit, Wiederholung, Wiederholungsalgorithmus usw. Ribbon verfügt über integrierte steckbare und anpassbare Lastausgleichskomponenten.
3. Schutzschalter – Netflix Hystrix
Ein Schutzschalter verhindert, dass eine Anwendung mehrmals versucht, einen Vorgang auszuführen, der wahrscheinlich fehlschlägt, und ermöglicht so die Fortsetzung, ohne auf die Wiederherstellung nach einem Fehler zu warten oder es wird CPU-Zyklus verschwendet, während festgestellt wird, dass der Fehler dauerhaft ist. Im Leistungsschaltermodus können Anwendungen außerdem erkennen, ob der Fehler behoben wurde. Wenn das Problem anscheinend behoben wurde, kann die Anwendung versuchen, den Vorgang aufzurufen.
4. Service-Gateway – Netflix Zuul
Ähnlich wie Nginx, Reverse-Proxy-Funktion, aber Netflix selbst hat einige Funktionen hinzugefügt, um mit anderen Komponenten zusammenzuarbeiten.
5. Verteilte Konfiguration – Spring Cloud Config
Dies ist immer noch statisch und muss mit Spring Cloud Bus kombiniert werden, um dynamische Konfigurationsaktualisierungen zu erreichen.
Das obige ist der detaillierte Inhalt vonFragen zum neuen Java-Interview 2020 – Spring Boot/Spring Cloud (2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!