Heim  >  Artikel  >  Java  >  Wie viele dieser 9 Interviewfragen zu Microservices können Sie beantworten?

Wie viele dieser 9 Interviewfragen zu Microservices können Sie beantworten?

Java后端技术全栈
Java后端技术全栈nach vorne
2023-08-22 15:46:381486Durchsuche

Microservices gehören heutzutage zu den notwendigen Fähigkeiten unserer Java-Entwickler. Unabhängig davon, ob Sie in Ihrer Arbeit wirklich Microservices-Architektur verwenden, wird der Interviewer Sie auf jeden Fall fragen. Deshalb hat Bruder Tian eine Liste mit Fragen zu Microservices-Interviews für Sie zusammengestellt.

Kommen wir ohne weitere Umschweife direkt zur Sache.

1. Was sind Microservices?

Ein einzelner, leichter Dienst ist im Allgemeinen ein unabhängiger Mikrodienst. Das Anmeldesystem konzentriert sich beispielsweise nur auf die Implementierung von Benutzeranmeldefunktionen. Es ist sofort einsatzbereit und kann unabhängig ausgeführt werden. Das Microservice-Architektursystem ist ein verteiltes System, das Serviceeinheitsmodule nach Geschäft aufteilt, die Mängel eines einzelnen Systems löst und zunehmend komplexere Geschäftsanforderungen erfüllt. Martin Fowler: Derzeit gibt es keine einheitliche und standardisierte Definition für die Microservices-Branche. Aber im Allgemeinen handelt es sich bei der Microservices-Architektur um ein Architekturmuster oder einen Architekturstil, der die Aufteilung einer einzelnen Anwendung in eine Reihe kleiner Dienste befürwortet. Jeder Dienst läuft in einem eigenen unabhängigen Prozess ab und koordiniert sich, um den Benutzern den ultimativen Mehrwert zu bieten. Nutzen Sie eine einfache Kommunikation zwischen Diensten. Jeder Dienst basiert auf einem bestimmten Unternehmen und kann unabhängig in Produktionsumgebungen bereitgestellt werden. Darüber hinaus sollte ein einheitlicher und zentralisierter Service-Management-Mechanismus so weit wie möglich vermieden werden.

Laienhaft ausgedrückt:

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.

Wenn Sie zum Beispiel ins Krankenhaus gehen: Ihre Zähne fühlen sich unangenehm an, dann gehen Sie zum Zahnarzt. Wenn Sie Kopfschmerzen haben, gehen Sie in eine Gehirnabteilung. Jede Abteilung ist ein Microservice und jede Funktion ist ein Service.

2. Wie kommunizieren Microservices unabhängig?

Synchronische Kommunikation: Dobbo über RPC-Remoteprozeduraufruf, Springcloud über REST-Schnittstellen-JSON-Aufruf usw. Asynchron: Nachrichtenwarteschlange, wie zum Beispiel: RabbitMq, ActiveM, Kafka usw.

3. Was sind die Unterschiede zwischen SpringCloud und Dubbo?

  • Erstens handelt es sich bei allen um verteilte Management-Frameworks.

  • dubbo ist eine binäre Übertragung, die weniger Bandbreite beansprucht. SpringCloud verwendet die http-Übertragung, die etwas mehr Bandbreite benötigt. Gleichzeitig werden bei der Verwendung des http-Protokolls im Allgemeinen JSON-Nachrichten verwendet, die mehr verbrauchen.

  • Dubbo ist schwer zu entwickeln und die Jar-Pakete, auf die es angewiesen ist, haben viele Probleme Große Projekte können nicht gelöst werden. Die Vererbung von Drittanbietern durch SpringCloud kann mit einem Klick generiert und natürlich integriert werden.

  • Die Vereinbarung zum SpringCloud-Schnittstellenprotokoll ist relativ locker.
    Es sind strenge Verwaltungsmaßnahmen erforderlich, um ungeordnete Schnittstellenaktualisierungen zu begrenzen.

  • Der größte Unterschied:
    Spring Cloud verzichtet auf die RPC-Kommunikation von Dubbo und übernimmt die HTTP-basierte REST-Methode.

  • Genau genommen haben diese beiden Methoden ihre eigenen Vor- und Nachteile. Letzteres beeinträchtigt zwar in gewissem Maße die Leistung von Serviceaufrufen, vermeidet aber auch die oben erwähnten Probleme, die durch natives RPC verursacht werden. Darüber hinaus ist REST flexibler als RPC. Der Dienstanbieter und der Anrufer verlassen sich nur auf einen Papiervertrag, und es besteht keine starke Abhängigkeit auf Codeebene. Dies ist in einer Microservice-Umgebung angemessener, in der eine schnelle Entwicklung im Vordergrund steht.
Wie viele dieser 9 Interviewfragen zu Microservices können Sie beantworten?
SpringCloud und Dubbo.png

4. Die Beziehung zwischen SpringBoot und SpringCloud?

  • SpringBoot: Konzentrieren Sie sich auf die schnelle und bequeme Entwicklung eines einzelnen einzelnen Microservices (Fokus auf den Mikroservice); SpringCloud: Konzentrieren Sie sich auf das gesamte Microservice-Koordinations- und Governance-Framework, kombinieren und verwalten Sie einzelne von SpringBoot entwickelte Microservices (Fokus auf das Makro);

  • SpringBoot kann unabhängig ohne SpringCloud verwendet werden, SpringCloud kann jedoch nicht ohne SpringBoot verwendet werden, da es sich um eine Abhängigkeitsbeziehung handelt.

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

  • Die Funktion des Service-Schutzschalters ähnelt unserer Haushaltssicherung. Wenn ein Dienst nicht verfügbar ist oder die Reaktion abbricht, werden Anrufe an den Dienst vorübergehend gestoppt, um eine Lawine des gesamten Systems zu verhindern.

  • Die Verschlechterung des Dienstes basiert auf der Auslastungssituation des gesamten Systems. Um zu verhindern, dass bestimmte Funktionen (Geschäftsszenarien) überlastet werden oder langsam reagieren, werden intern Anfragen vorübergehend abgebrochen Einige nicht zum Kern gehörende Schnittstellen und Daten geben direkt eine im Voraus vorbereitete Fallback-Fehlerbehandlungsinformation zurück. Dadurch wird trotz der Bereitstellung eines verlustbehafteten Dienstes die Stabilität und Verfügbarkeit des Gesamtsystems gewährleistet.

6. Was sind die Vor- und Nachteile von Microservices? Erzählen Sie mir von den Fallstricken, auf die Sie bei dem Projekt gestoßen sind.

  • Vorteile: Lose Kopplung, Konzentration auf eine einzelne Geschäftsfunktion, Unabhängigkeit von Entwicklungssprachen und reduzierte Teamgröße. Während der Entwicklung müssen Sie nicht viel über das Unternehmen wissen, sondern sich nur auf die aktuellen Funktionen konzentrieren, die bequem und zentralisiert sind und deren Funktionen klein und raffiniert sind. Wenn eine Funktion eines Microservice beschädigt ist, hat dies keine großen Auswirkungen auf andere Funktionen und das Problem kann schnell lokalisiert werden. Microservices konzentrieren sich nur auf den aktuellen Geschäftslogikcode und werden nicht mit HTML, CSS oder anderen Schnittstellen vermischt. Es lässt sich flexibel an die Technik anpassen und macht es komfortabler, unabhängig zu sein.

  • Nachteile: Mit zunehmender Anzahl von Diensten wird die Verwaltung komplexer, die Bereitstellung komplexer, die Serveranforderungen steigen, die Servicekommunikation und der Anrufdruck steigen, der Druck der Betriebs- und Wartungstechniker steigt, die Personalressourcen nehmen zu, die Systemabhängigkeiten nehmen zu usw Datenkonsistenz erhöht, Leistungsüberwachung.

7. Was ist der Unterschied zwischen Eureka und Zookeeper?

Zookeeper ist ein CP-Prinzip, starke Konsistenz und Partitionsfehlertoleranz. eureka ist das AP-Prinzip der Verfügbarkeit und Partitionstoleranz. Wenn der Masterknoten ausfällt, wählt ZooKeeper den Masterknoten erneut aus, was zu lange dauert. Obwohl er schließlich wiederhergestellt werden kann, ist der Dienst während der Auswahl des Masterknotens nicht verfügbar, was nicht toleriert werden kann. Alle Knoten in Eureka sind gleich. Wenn ein Knoten auflegt, behalten die anderen Knoten weiterhin den normalen Dienst bei.

8. Welche Technologie-Stacks kennen Sie über Microservices? Listen Sie ein oder zwei auf.Ar chaius, Ali’s Dlamond usw Service Circuit Breaker hystrix, Gesandter usw. Load Balancing Warteschlange Kafka、 RabbitMQ, ActiveMQ usw. Verwaltung des Service-Konfigurationscenters SpringCloudConfig, Chef usw. Service-Routing (API-Gateway) Zuul usw. Service-Überwachung Zabbix, Nagios, Metrics, Spectator und mehr Vollständige Linkverfolgung Zipkin, Brave, Dapper usw. Dienstbereitstellung Docker, OpenStack, Kubernetes usw. Data Flow Operation Development Kit SpringCloud Stream (gekapselt mit Redis, Rabbit , Kafka usw. Nachrichten senden und empfangen) Event Message Bus Spring Cloud Bus

9. Was ist Microservice-Architektur?

Wenn Sie früher verstanden haben, was Microservices sind, dann verstehen Sie im Grunde schon die Microservice-Architektur.

Microservice-Architektur dient der Verwaltung, Integration und Anwendung von Microservices. Die Microservice-Architektur basiert auf Microservices und basiert auf Microservices.

Zum Beispiel: Was sind Microservices, wurde oben aufgeführt. In einem Krankenhaus ist jede Abteilung ein unabhängiger Mikrodienst, sodass das Krankenhaus eine groß angelegte Mikrodienst-Architektur ist, genau wie der Direktor die folgenden Abteilungen verwalten kann. Die Microservice-Architektur hat hauptsächlich diese Funktion.

Das obige ist der detaillierte Inhalt vonWie viele dieser 9 Interviewfragen zu Microservices können Sie beantworten?. 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