Heim  >  Artikel  >  Java  >  Interview-Feedback zur 25-Schuss-Serie von Spring Cloud

Interview-Feedback zur 25-Schuss-Serie von Spring Cloud

Java后端技术全栈
Java后端技术全栈nach vorne
2023-08-24 15:57:321034Durchsuche


Vorwort

Aus besonderen Gründen wurden unsere Interviews vor einiger Zeit reihenweise unterbrochen. Es kam vor, dass ein alter Mann letzte Woche zum Interview ging und nach Spring Cloud gefragt wurde, und dann In Kombination mit seinem Feedback setzen wir heute die SpringCloud-Interviewreihe fort.

Willkommen alle, die mir folgen:

Zusammenfassung des Spring Cloud-Kernwissens

Das Folgende ist ein Spring Cloud-Kernkomponentenbeziehungsdiagramm:

Interview-Feedback zur 25-Schuss-Serie von Spring Cloud


aus diesem Bild können wir tatsächlich viele Informationen entnehmen, und ich hoffe, Sie können es aufmerksam genießen.

Das Folgende ist eine Zusammenfassung der Spring Cloud NetflixSpring Cloud AlibabaKernkomponenten:

Interview-Feedback zur 25-Schuss-Serie von Spring Cloud

Beginnen wir ohne weitere Umschweife direkt mit der Spring Cloud-Reihe.

Serial Gun Walking Up

1. Was ist Spring Cloud?

Spring Cloud Streaming Application Starter ist eine integrierte Spring-Anwendung auf Basis von Spring Boot, die die Integration mit externen Systemen ermöglicht. Spring Cloud Task, ein kurzlebiges Microservices-Framework zum schnellen Erstellen von Anwendungen, die eine begrenzte Datenverarbeitung durchführen.

2. Was sind Microservices?

Microservice-Architektur ist ein Architekturmuster oder ein Architekturstil. Sie befürwortet die Aufteilung einer einzelnen Anwendung in eine Reihe kleiner Dienste, die sich gegenseitig koordinieren und kooperieren Wert. Dienste verwenden einfache Kommunikationsmechanismen, um miteinander zu kommunizieren (normalerweise RESTful API basierend auf HTTP). Jeder Dienst basiert auf einem bestimmten Unternehmen und kann unabhängig in einer Produktionsumgebung, einer produktionsähnlichen Umgebung usw. erstellt werden. Darüber hinaus sollte ein einheitlicher und zentraler Service-Management-Mechanismus vermieden werden. Für die Koordinierung dieser Services sollten geeignete Sprachen und Tools entsprechend dem Geschäftskontext ausgewählt werden Zum Schreiben der Dienste können verschiedene Sprachen verwendet und unterschiedliche Datenspeicher verwendet werden.

Laienhaft ausgedrückt:

Ein Microservice ist eine unabhängige Serviceanwendung mit einer einzigen Verantwortung. Im Intellij-Ideentool gibt es unabhängige Module, die mit Maven entwickelt wurden. Insbesondere handelt es sich um ein kleines Modul, das mit Springboot entwickelt wurde, um eine einzelne professionelle Geschäftslogik zu verwalten.

Microservices betonen die Größe des Dienstes und konzentrieren sich auf einen bestimmten Punkt, insbesondere auf die Lösung eines bestimmten Problems/die Implementierung einer entsprechenden Dienstanwendung, die als Modul in der Idee betrachtet werden kann.

3. Was sind die Vorteile von Spring Cloud?

Bei der Verwendung von Spring Boot zur Entwicklung verteilter Microservices stehen wir vor den folgenden Problemen

  • Komplexität im Zusammenhang mit verteilten Systemen – Dieser Overhead umfasst Netzwerkprobleme, Latenz-Overhead, Bandbreitenprobleme und Sicherheitsprobleme.
  • Service Discovery – Service Discovery-Tools verwalten, wie Prozesse und Services in einem Cluster einander finden und miteinander kommunizieren. Dazu gehört ein Dienstkatalog, die Registrierung von Diensten in diesem Katalog und die Möglichkeit, Dienste in diesem Katalog zu finden und eine Verbindung zu ihnen herzustellen.
  • Redundanz – Redundanzprobleme in verteilten Systemen.
  • Lastausgleich – Der Lastausgleich verbessert die Verteilung von Arbeitslasten auf mehrere Computerressourcen, wie z. B. Computer, Computercluster, Netzwerkverbindungen, Zentraleinheiten oder Festplatten.
  • Leistungsproblem Leistungsprobleme aufgrund verschiedener betrieblicher Gemeinkosten.
  • Bereitstellungskomplexität – Anforderungen an Devops-Fähigkeiten.

4. Wie kommunizieren Microservices unabhängig?

Synchronisierte Kommunikation: Dobbo verwendet RPC-Remoteprozeduraufrufe, Springcloud verwendet REST-Schnittstellen-JSON-Aufrufe usw.

Asynchron: Nachrichtenwarteschlange, wie zum Beispiel: RabbitMqActiveMKafka und andere Nachrichtenwarteschlangen.

5. Was ist ein Service-Leistungsschalter? Was ist ein Service-Downgrade?

Der Schutzschaltermechanismus ist ein Microservice-Link-Schutzmechanismus zur Bewältigung des Lawineneffekts. Wenn ein bestimmter Mikrodienst nicht verfügbar ist oder die Antwortzeit zu lang ist, wird der Dienst beeinträchtigt, wodurch der Aufruf des Mikrodienstes auf dem Knoten unterbrochen wird und schnell „Fehler“-Antwortinformationen zurückgegeben werden. Wenn festgestellt wird, dass die Microservice-Anrufantwort des Knotens normal ist, wird die Anrufverbindung wiederhergestellt. Im Spring Cloud-Framework wird der Circuit-Breaker-Mechanismus über Hystrix implementiert. Wenn fehlgeschlagene Anrufe einen bestimmten Schwellenwert erreichen, ist der Circuit-Breaker-Mechanismus standardmäßig 20 wird aktiviert.

Service-Downgrade wird grundsätzlich von der Gesamtlast berücksichtigt. Das heißt, wenn ein Dienst getrennt wird, wird der Server nicht mehr aufgerufen. Zu diesem Zeitpunkt kann der Client einen lokalen Fallback-Rückruf vorbereiten und einen Standardwert zurückgeben. Auf diese Weise ist das Level zwar reduziert, aber immer noch verwendbar, was besser ist, als direkt zu sterben.

Hystrix相关注解@EnableHystrix:开启熔断 @HystrixCommand(fallbackMethod=”XXX”),声明一个失败回滚处理函数XXX,当被注解的方法执行超时(默认是1000毫秒),就会执行fallbackFunktion, gibt eine Fehlermeldung zurück.

6. Erklären Sie mir bitte den Unterschied zwischen Eureka und Zookeeper?

Zookeeper garantiert CP und Eureka garantiert AP.

A: Hohe Verfügbarkeit

C: Konsistenz

P: Partitionsfehlertoleranz

1. Wenn wir das Registrierungscenter nach einer Serviceliste abfragen, können wir tolerieren, dass das Registrierungscenter Informationen von vor ein paar Minuten zurückgibt, aber wir Kann nicht direkt heruntergefahren werden und ist nicht verfügbar. Mit anderen Worten, die Dienstregistrierungsfunktion stellt relativ hohe Anforderungen an die Hochverfügbarkeit, aber es kommt zu einer Situation, in der der Masterknoten aufgrund eines Netzwerkausfalls den Kontakt zu anderen Knoten verliert und die verbleibenden Knoten den Anführer erneut wählen. Das Problem besteht darin, dass die Leader-Auswahlzeit zu lang ist (30 bis 120 Sekunden) und der ZK-Cluster während des Auswahlzeitraums nicht verfügbar ist, was dazu führt, dass der Registrierungsdienst während des Auswahlzeitraums lahmgelegt wird. In einer Cloud-Bereitstellungsumgebung besteht eine hohe Wahrscheinlichkeit, dass der ZK-Cluster aufgrund von Netzwerkproblemen den Masterknoten verliert. Der Dienst kann zwar wiederhergestellt werden, die durch die lange Auswahlzeit verursachte langfristige Nichtverfügbarkeit der Registrierung ist jedoch nicht tolerierbar.

2. Eureka garantiert die gleiche Verfügbarkeit. Der Ausfall mehrerer Knoten hat keinen Einfluss auf die Arbeit der normalen Knoten. Wenn ein Verbindungsfehler auftritt, wenn der Eureka-Client einen bestimmten Eureka registriert oder entdeckt, wechselt er automatisch zu anderen Knoten. Solange noch ein Eureka verfügbar ist, kann garantiert werden, dass der Registrierungsdienst verfügbar ist, die gefundenen Informationen jedoch möglicherweise nicht das Neueste. Darüber hinaus verfügt Eureka auch über einen Selbstschutzmechanismus. Wenn mehr als 85 % der Knoten innerhalb von 15 Minuten keinen normalen Herzschlag haben, geht Eureka davon aus, dass zu diesem Zeitpunkt ein Netzwerkfehler aufgetreten ist , werden die folgenden Situationen auftreten:

①. Dienste, die ablaufen sollten, weil sie seit längerem keine Heartbeats erhalten haben, werden nicht mehr aus der Registrierungsliste entfernt.

②. Eureka kann weiterhin Registrierungs- und Abfrageanfragen für neue Dienste annehmen, wird jedoch nicht mit anderen Knoten synchronisiert (d. h. es wird sichergestellt, dass der aktuelle Knoten weiterhin verfügbar ist)

③ Wenn das Netzwerk stabil ist, werden die neuen Registrierungsinformationen der aktuellen Instanz mit anderen Knoten synchronisiert.

Deshalb kann Eureka die Situation gut bewältigen, in der einige Knoten aufgrund eines Netzwerkausfalls den Kontakt verlieren, und legt nicht den gesamten Mikrodienst wie Zookeeper lahm.

7 Was ist der Unterschied zwischen SpringBoot und SpringCloud?

SpringBoot konzentriert sich auf die schnelle und einfache Entwicklung individueller Microservices.

SpringCloud ist ein Microservice-Koordinations- und Governance-Framework, das sich auf die Gesamtsituation konzentriert. Es integriert und verwaltet einzelne von SpringBoot entwickelte Microservices, Serviceerkennung, Leistungsschalter und Routing. Ereignisbus, globale Sperre, Entscheidungswahl, verteilte Sitzung und andere integrierte Dienste

SpringBoot kann unabhängig ohne SpringCloud für Entwicklungsprojekte verwendet werden, aber SpringCloud kann nicht von SpringBoot getrennt werden und ist eine Abhängigkeitsbeziehung.

SpringBoot konzentriert sich auf Schnelligkeit Praktisch für die Entwicklung einzelner Microservices, und SpringCloud konzentriert sich auf das globale Service-Governance-Framework.

8. Was bedeutet Lastausgleich? In der Datenverarbeitung verbessert der Lastausgleich die Verteilung der Arbeitslast auf mehrere Computerressourcen wie Computer, Computercluster, Netzwerkverbindungen, Zentraleinheiten oder Festplatten. Der Lastausgleich zielt darauf ab, die Ressourcennutzung zu optimieren, den Durchsatz zu maximieren, die Antwortzeit zu minimieren und die Überlastung einer einzelnen Ressource zu vermeiden. Die Verwendung mehrerer Komponenten für den Lastausgleich anstelle einer einzelnen Komponente kann die Zuverlässigkeit und Verfügbarkeit durch Redundanz verbessern. Beim Lastausgleich handelt es sich in der Regel um spezielle Software oder Hardware, beispielsweise mehrschichtige Switches oder Domain Name System-Serverprozesse.

9. Was ist Hystrix? Wie wird Fehlertoleranz erreicht? Hystrix ist eine Latenz- und Fehlertoleranzbibliothek, die darauf ausgelegt ist, Zugriffspunkte auf entfernte Systeme, Dienste und Bibliotheken von Drittanbietern zu isolieren, kaskadierende Fehler zu stoppen, wenn Fehler unvermeidbar sind, und Elastizität in komplexen verteilten Systemen zu implementieren.

Normalerweise sind bei Systemen, die mithilfe einer Microservice-Architektur entwickelt werden, viele Microservices beteiligt. Diese Microservices arbeiten miteinander zusammen.

Denken Sie über den folgenden Microservice nach:

Interview-Feedback zur 25-Schuss-Serie von Spring Cloud

Angenommen, Microservice 9 im obigen Bild schlägt fehl, dann verbreiten wir mit herkömmlichen Methoden eine Ausnahme. Dies führt jedoch immer noch zum Absturz des gesamten Systems.

Mit zunehmender Anzahl an Microservices wird dieses Problem komplexer. Die Anzahl der Microservices kann bis zu 1000 betragen. Hier kommt Hystrix ins Spiel. In diesem Fall verwenden wir die Fallback-Methodenfunktion von Hystrix. Wir haben zwei Dienste: Mitarbeiter-Verbraucher, die Dienste nutzen, die vom Mitarbeiter-Verbraucher bereitgestellt werden.

Das vereinfachte Diagramm ist unten dargestellt

Interview-Feedback zur 25-Schuss-Serie von Spring Cloud

Angenommen, der von „employee-producer“ bereitgestellte Dienst löst aus irgendeinem Grund eine Ausnahme aus. In diesem Fall haben wir eine Fallback-Methode mit Hystrix definiert. Diese Fallback-Methode sollte denselben Rückgabetyp wie der öffentliche Dienst haben. Wenn im bereitgestellten Dienst eine Ausnahme auftritt, gibt die Fallback-Methode einen Wert zurück.

10. Was ist ein Hystrix-Leistungsschalter? Brauchen wir es?

Aus bestimmten Gründen löst der öffentliche Dienst Arbeitnehmer-Verbraucher eine Ausnahme aus. Mit Hystrix definieren wir in diesem Fall eine Fallback-Methode. Wenn im bereitgestellten Dienst eine Ausnahme auftritt, gibt die Fallback-Methode einen Standardwert zurück.

Interview-Feedback zur 25-Schuss-Serie von Spring Cloud


Wenn die Ausnahme in der Methode firstPage() weiterhin auftritt, wird die Hystrix-Schaltung unterbrochen und der Mitarbeiter-Consumer überspringt die Methode firtsPage insgesamt und ruft die Fallback-Methode direkt auf. Der Zweck des Leistungsschalters besteht darin, der Methode der ersten Seite oder anderen Methoden, die die Methode der ersten Seite möglicherweise aufruft, Zeit zu geben und eine Ausnahmewiederherstellung zu veranlassen. Möglicherweise besteht bei geringerer Auslastung eine bessere Chance auf eine Wiederherstellung des Problems, das die Ausnahme verursacht hat.

Interview-Feedback zur 25-Schuss-Serie von Spring Cloud


11. Lassen Sie uns über das Implementierungsprinzip von RPC sprechen

Zunächst gibt es ein Modul, das die Netzwerkverbindungskommunikation verwaltet und für den Verbindungsaufbau, die Verwaltung und die Nachrichtenübertragung verantwortlich ist Übertragung. Zweitens ist ein Codierungs- und Decodierungsmodul erforderlich, da es sich bei der Netzwerkkommunikation ausschließlich um übertragene Bytecodes handelt und die von uns verwendeten Objekte serialisiert und deserialisiert werden müssen. Der Rest besteht aus den Client- und Serverteilen. Der Server stellt die zu öffnende Dienstschnittstelle bereit. Diese Proxy-Implementierung ist für das Sammeln von Daten, die Codierung und die Übertragung an den Server verantwortlich die Ergebnisse, die zurückgegeben werden sollen.

12. Was ist der Selbstschutzmechanismus von eureka?

Wenn der Eureka-Server-Knoten in kurzer Zeit Verbindungen zu zu vielen Instanzen verliert (z. B. durch Netzwerkausfall oder häufiges Starten und Herunterfahren von Clients) Der Knoten wechselt in den Selbstschutzmodus, schützt die Registrierungsinformationen, löscht keine Registrierungsdaten mehr und verlässt den Selbstschutzmodus automatisch, wenn eine Fehlerbehebung erfolgt.

13. Was ist ein Band?

ribbon ist ein Lastausgleichs-Client, der einige Verhaltensweisen von http und tcp gut steuern kann. feign默认集成了ribbon

14,什么是 Netflix Feign?它的优点是什么?

Feign 是受到 Retrofit,JAXRS-2.0 和 WebSocket 启发的 java 客户端联编程序。

Feign 的第一个目标是将约束分母的复杂性统一到 http apis,而不考虑其稳定性。

特点:

  • Feign 采用的是基于接口的注解
  • Feign 整合了ribbon,具有负载均衡的能力
  • 整合了Hystrix,具有熔断的能力

使用方式

  • 添加pom依赖。
  • 启动类添加@EnableFeignClients
  • 定义一个接口@FeignClient(name=“xxx”)
14, Was ist Netflix Feign? Was sind seine Vorteile?

Feign ist ein Java-Client-Ordner, der von Retrofit, JAXRS-2.0 und WebSocket inspiriert ist.

Feigns erstes Ziel besteht darin, die Komplexität von Einschränkungsnennern unabhängig von ihrer Stabilität auf http-APIs zu vereinheitlichen.

Eigenschaften: 🎜
  • Feign verwendet schnittstellenbasierte Anmerkungen🎜🎜
  • Feign integriert Ribbon und verfügt über Lastausgleichsfunktionen🎜🎜
  • Hystrix integriert und hat die Fähigkeit zu verschmelzen🎜🎜🎜🎜Verwenden Sie die Methode 🎜
  • POM-Abhängigkeit hinzufügen. 🎜🎜
  • Startup-Klassenzusatz@EnableFeignClients🎜🎜
  • Definieren Sie eine Schnittstelle@FeignClient(name="xxx")Geben Sie an, welcher Dienst aufgerufen werden soll 🎜🎜🎜🎜🎜🎜15. Was ist der Unterschied zwischen Ribbon und Feign? 🎜🎜🎜🎜1. Ribbon ruft andere Dienste auf, jedoch auf unterschiedliche Weise. 2. Die Annotationen der Startklasse sind unterschiedlich. Ribbon ist @RibbonClient und feign ist @EnableFeignClients. 3. Der angegebene Speicherort des Dienstes ist unterschiedlich. Ribbon wird in der Annotation @RibbonClient deklariert, während Feign mithilfe von @FeignClient in der Schnittstelle deklariert wird, die die abstrakte Methode definiert. 4. Die aufrufenden Methoden sind unterschiedlich. Ribbon muss die http-Anfrage selbst erstellen und die http-Anfrage simulieren. 🎜

    16. Was sind die Kernkomponenten von Spring Cloud?

    • Eureka: Bei Discovery registrierter Dienst.
    • Feign: Basierend auf dem dynamischen Proxy-Mechanismus, basierend auf der Anmerkung und dem ausgewählten Computer, wird die Anforderungs-URL-Adresse gespleißt und die Anforderung initiiert.
    • Ribbon: Implementieren Sie den Lastausgleich und wählen Sie eine von mehreren Maschinen für einen Dienst aus.
    • Hystrix: Stellt einen Thread-Pool bereit, der unterschiedliche Thread-Pools verwendet, wodurch die Isolierung verschiedener Dienstaufrufe realisiert und das Problem einer Dienstlawine vermieden wird.
    • Zuul: Gateway-Management, das Zuul-Gateway leitet Anfragen an die entsprechenden Dienste weiter.

    17. Lassen Sie uns über die Beziehung zwischen Spring Boot und Spring Cloud sprechen um schnell einen einzelnen Microservice zu erstellen Spring Cloud konzentriert sich auf die Lösung der Koordination und Konfiguration zwischen verschiedenen Mikrodiensten, die Kommunikation zwischen Diensten, Leistungsschalter, Lastausgleich usw. Die technischen Dimensionen sind nicht dieselben, und Spring Cloud hängt von Spring Boot ab, aber Spring Boot ist nicht von Spring Cloud abhängig und kann sogar eine hervorragende integrierte Entwicklung mit Dubbo durchführenZusammenfassung

    SpringBoot konzentriert sich auf die schnelle und bequeme Entwicklung von ein einzelner einzelner Microservice

    • SpringCloud ist ein Microservice-Koordinations- und Governance-Framework, das sich auf die Gesamtsituation konzentriert, verschiedene Microservices integriert und verwaltet und die Integration zwischen jedem Microservice wie Konfigurationsmanagement, Serviceerkennung, Leistungsschalter, Routing und Ereignisbusse ermöglicht usw. Service
    • Spring Boot hängt nicht von Spring Cloud ab, was eine Abhängigkeitsbeziehung darstellt
    • Spring Boot konzentriert sich auf die schnelle und bequeme Entwicklung einzelner Microservices, und Spring Cloud konzentriert sich zum globalen Service-Governance-Framework
    • 18. Wie kommunizieren Microservices unabhängig?

    Remote Procedure Invocation (Remote-Prozedur-Aufruf)

    nennen wir häufig die Registrierung und Erkennung von Diensten. Sie können über Remote-Prozeduraufrufe direkt auf andere Dienste zugreifen.

    Vorteile

    : Einfach und allgemein, da kein Middleware-Proxy vorhanden ist, ist das System einfacher

    Nachteile: Es unterstützt nur den Anforderungs-/Antwortmodus und unterstützt keine anderen, wie Benachrichtigung, Anforderung/asynchrone Antwort, Publish/Subscribe, Publish/asynchrone Antworten reduzieren die Verfügbarkeit, da sowohl der Client als auch der Server während der Anfrage verfügbar sein müssen.

    Nachrichten

    Verwenden Sie asynchrone Nachrichten für die Kommunikation zwischen Diensten. Dienste kommunizieren durch den Austausch von Nachrichten über Nachrichtenpipes.

    Vorteile: Entkoppeln Sie Client und Server, lockern Sie die Kopplung und verbessern Sie die Benutzerfreundlichkeit, da die Nachrichten-Middleware die Nachricht zwischenspeichert, bis der Verbraucher sie konsumieren kann, und viele Kommunikationsmechanismen wie Benachrichtigungen, Anfragen/asynchrone Antworten, Freigaben/Abonnements unterstützt , veröffentlichen/asynchrone Antwort.

    Nachteile: Nachrichten-Middleware weist zusätzliche Komplexität auf.

    19. Wie implementiert Spring Cloud die Dienstregistrierung?

    Geben Sie bei der Veröffentlichung des Dienstes den entsprechenden Dienstnamen an und registrieren Sie den Dienst im Registrierungscenter (Eureka, Zookeeper). Eureka 、Zookeeper)

    注册中心加@EnableEurekaServer,服务用@EnableDiscoveryClient

    Registrierungscenter plus@EnableDiscoveryClient, dann verwenden Sie Ribbon oder Feign Führen Sie eine direkte Serviceanruferkennung durch.

    Diese Frage ist praktischer. Es hängt davon ab, ob Sie die Interviewfragen auswendig gelernt haben. Wer sie nicht geübt hat, wird es nicht wissen.

    20. Was ist ein Service-Leistungsschalter?

    In komplexen verteilten Systemen können gegenseitige Aufrufe zwischen Mikrodiensten aus verschiedenen Gründen zur Dienstblockierung führen. In Szenarien mit hoher Parallelität bedeutet Dienstblockierung eine Thread-Blockierung, was dazu führt, dass der aktuelle Thread nicht verfügbar ist und alle Server-Threads blockiert werden Da die Aufrufbeziehung zwischen Diensten synchron ist, führt dies zu einer Dienstlawine für das gesamte Mikrodienstsystem. Um das Problem zu lösen, dass die Anrufantwortzeit eines bestimmten Mikrodienstes zu lang ist oder nicht verfügbar ist Es nimmt immer mehr Systemressourcen in Anspruch, was zu einem Lawineneffekt führt und eine Verarbeitung von Dienstunterbrechungen und Dienstverschlechterungen erfordert.

    Der sogenannte Service-Leistungsschalter bezieht sich auf einen bestimmten Serviceausfall oder eine bestimmte Servicestörung, die der „Sicherung“ in der Anzeigewelt ähnelt. Wenn ein abnormaler Zustand ausgelöst wird, wird der gesamte Service direkt durchgebrannt, anstatt darauf zu warten Servicezeitüberschreitung.

    Die Service-Sicherung entspricht der Sicherung unseres elektrischen Schalters. Durch die Aufrechterhaltung eines eigenen Thread-Pools wird eine Service-Verschlechterung eingeleitet Andere Anfragen greifen weiterhin zu, es wird direkt der Standardwert von Fallback zurückgegeben

    21. Verstehen Sie den Selbstschutzmechanismus von Eureka?

    Wenn der Eureka-Server-Knoten in kurzer Zeit die Verbindung zu zu vielen Instanzen verliert (z. B. aufgrund eines Netzwerkausfalls oder häufiges Starten und Herunterfahren von Clients), wechselt der Knoten in den Selbstschutzmodus, um die Registrierungsinformationen zu schützen und nicht mehr zu löschen Registrierungsdaten und die Wiederherstellung nach Fehlern beendet automatisch den Selbstschutzmodus.

    22. Kennen Sie Spring Cloud Bus?

    Spring Cloud Bus verbindet verteilte Knoten mit einem einfachen Nachrichtenbroker. Es kann auch für die Übertragung von Konfigurationsdateiänderungen verwendet werden Überwachung. Wenn die Konfigurationsdatei geändert wird und eine Anfrage gesendet wird, lesen alle Clients die Konfigurationsdatei erneut.

    23. Welche Funktion hat der Spring Cloud-Leistungsschalter?

    Wenn ein Dienst aus Netzwerkgründen oder aus eigenen Gründen ein Problem aufweist, wartet der Anrufer auf die Antwort des Angerufenen Mehr Dienste Das Anfordern dieser Ressourcen führt dazu, dass mehr Anforderungen warten, was zu einem Ketteneffekt (Lawineneffekt) führt. Wenn innerhalb eines Zeitraums eine bestimmte Anzahl von Malen kein Aufruf möglich ist und auch nach mehrfacher Überwachung keine Anzeichen einer Wiederherstellung vorliegen, ist der Leistungsschalter vollständig geöffnet und der Dienst wird beim nächsten Mal nicht angefordert.

    Halb offen: Es gibt Anzeichen einer Wiederherstellung in kurzer Zeit. Der Leistungsschalter sendet einige Anfragen an den Service. Bei einem normalen Anruf ist der Leistungsschalter geschlossen. Geschlossen: Wenn sich der Dienst immer in einem normalen Zustand befindet und normal aufgerufen werden kann.

    24. Kennen Sie Spring Cloud Config?

    In einem verteilten System ist aufgrund der großen Anzahl von Diensten ein verteiltes Konfigurationszentrum erforderlich, um eine einheitliche Verwaltung und Aktualisierung der Dienstkonfigurationsdateien in Echtzeit zu ermöglichen Komponente benötigt wird. In Spring Cloud gibt es eine verteilte Konfigurationscenter-KomponenteSpring Cloud Config,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。

    Spring Cloud Config

    InAnwendung: 🎜
    • ADD POM -Abhängigkeit
    • Add Relevante Konfiguration zur Konfigurationsdatei Cloud Gateway ist das von Spring Cloud offiziell eingeführte Gateway-Framework der zweiten Generation und ersetzt das Zuul-Gateway. Als Verkehrscontroller spielen Gateways eine sehr wichtige Rolle in Microservice-Systemen. Zu den allgemeinen Funktionen von Gateways gehören Routing und Weiterleitung, Berechtigungsüberprüfung und Strombegrenzungskontrolle.
    • Eine RouteLocatorBuilder-Bean wird zum Erstellen von Routen verwendet. RouteLocatorBuilder ermöglicht Ihnen, verschiedene Prädikate und Filter hinzuzufügen. Wie der Name schon sagt, besteht die Bedeutung von Prädikaten-Assertionen darin, von bestimmten Routen gemäß bestimmten Anforderungsregeln verarbeitet zu werden Filter sind jeweils ein Filter, der verwendet wird, um verschiedene Beurteilungen und Änderungen an Anfragen vorzunehmen.
    • Referenz; http://1pgqu.cn/M0NZo

    Zusammenfassung

    Spring Cloud ist derzeit sehr beliebt und gehört fast zu den notwendigen Fähigkeiten für Java-Entwickler. Es ist normal, dass diese Frage während des Vorstellungsgesprächs gestellt wird. Viele Menschen haben sie vielleicht schon lange verwendet, sind aber im Vorstellungsgespräch durchgefallen, ohne die Prinzipien zu verstehen. Das Auswendiglernen von Testfragen ist im Großen und Ganzen immer noch sehr nützlich. Langfristig gesehen hoffe ich jedoch, dass jeder auf einer tieferen Ebene lernt und übt. Erst wenn man es wirklich beherrscht, kann man es NB nennen.

Das obige ist der detaillierte Inhalt vonInterview-Feedback zur 25-Schuss-Serie von Spring Cloud. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Java后端技术全栈. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen