Wenn wir am Scheideweg der Zukunft stehen, ist es oft interessant, auf den verlorenen Weg der Geschichte zurückzublicken, denn wir werden unabsichtlich verrückte Gedanken haben, wie zum Beispiel, was passiert wäre, wenn etwas früher passiert wäre, aber etwas anderes passiert wäre nicht passiert? Genau wie das, was passiert wäre, wenn Erzherzog Ferdinand und seine Frau, Thronfolger der österreichisch-ungarischen Monarchie, nicht von dem leidenschaftlichen serbischen Jugendlichen Princip erschossen worden wären, und was passiert wäre, wenn Qiu Laodao nicht durchgekommen wäre Niujia-Dorf?
Ende 2007 startete Taobao ein internes Rekonstruktionsprojekt namens „Colorful Stone“. Dieses Projekt wurde später zu Taobaos Servitisierung, Selbstforschung für den Vertrieb und trat aus der Internet-Middleware heraus des Systems und das Taobao-Dienstregistrierungszentrum ConfigServer wurde im selben Jahr geboren.
Um 2008 begann Yahoo, der ehemalige Internetriese, sein verteiltes Big-Data-Koordinationsprodukt ZooKeeper schrittweise öffentlich bekannt zu machen. Dieses Produkt bezog sich auf die von Google veröffentlichten Artikel zu Chubby und Paxos.
Im November 2010 entwickelte sich ZooKeeper von einem Unterprojekt von Apache Hadoop zu einem Spitzenprojekt von Apache und gab offiziell bekannt, dass ZooKeeper ein industrietaugliches, ausgereiftes und stabiles Produkt geworden ist.
Im Jahr 2011 musste Alibaba seine Beziehung zu Alibabas internen Systemen aufgeben und unterstützte später in China die Open-Source-Lösung Durch die Arbeit und Praxis aller Branchenteilnehmer hat die typische Servicelösung von Dubbo + ZooKeeper ZooKeeper als Registrierungszentrum berühmt gemacht.
Doppelte 11 im Jahr 2015, fast 8 Jahre sind vergangen, seit der ConfigServer-Dienst gestartet wurde. Alibabas interner „Serviceumfang“ überstieg mehrere Millionen, ebenso wie die Förderung der „Tausende Meilen entfernten“ IDC-Disaster-Recovery-Technologiestrategie usw. , was Alibaba gemeinsam dazu veranlasste, das interne zu öffnen Der Architektur-Upgrade-Pfad von ConfigServer 2.0 auf ConfigServer 3.0 wird erläutert.
Die Zeit rückt in Richtung 2018. Wie viele Menschen sind an der Schnittstelle von 10 Jahren bereit, ein wenig langsamer zu fahren und einen genaueren Blick auf den Bereich der Service-Erkennung zu werfen, wenn sie den sich ständig verändernden neuen Technologiekonzepten nachjagen? darüber nachgedacht oder darüber nachgedacht? Eine Frage:
Service Discovery, ist ZooKeeper wirklich die beste Wahl?
Rückblickend haben wir auch gelegentlich Mythen im Zusammenhang mit der Diensterkennung: Was wäre passiert, wenn ZooKeeper früher als unser HSF-Registrierungszentrum ConfigServer geboren worden wäre?
Werden wir einen Umweg machen, indem wir zuerst ZooKeeper verwenden und dann ZooKeeper hektisch umwandeln und patchen, um ihn an Alibabas serviceorientierte Szenarien und Bedürfnisse anzupassen?
Auf den Schultern von heute und unseren Vorgängern stehend, haben wir jedoch noch nie so deutlich erkannt wie heute, dass ZooKeeper im Bereich Service Discovery einfach nicht die beste Wahl ist, so wie wir alle es auch getan haben In diesem Jahr, Eureka-Kollege, und in diesem Artikel „Warum Sie ZooKeeper nicht für die Serviceerkennung verwenden sollten“, wird deutlich, warum Sie ZooKeeper nicht für die Serviceerkennung verwenden sollten!
Ich bin nicht allein auf meinem Weg.
Anforderungsanalyse des Registrierungszentrums und wichtige Überlegungen zum Design
Als nächstes kehren wir zur Bedarfsanalyse für die Serviceerkennung zurück, kombiniert mit Alibabas Praxis in Schlüsselszenarien, analysieren sie einzeln und diskutieren, warum ZooKeeper nicht das am besten geeignete Registrierungszentrum ist Lösung.
Ist das Registrierungszentrum ein CP- oder AP-System?
Ich glaube, dass die Leser mit den CAP- und BASE-Theorien vertraut sind und sie zu einem der Schlüsselprinzipien für den Aufbau verteilter Systeme und Internetanwendungen geworden sind Zu ihren Theorien gehen wir hier direkt auf die Analyse der Datenkonsistenz- und Verfügbarkeitsanforderungen des Registrierungszentrums ein:
Analyse der Datenkonsistenzanforderungen
Die wesentlichste Funktion des Registrierungszentrums kann als angesehen werden eine Abfragefunktion Si = F(service-name),以 service-name 为查询参数,service-name 对应的服务的可用的 endpoints (ip:port) Die Liste ist der Rückgabewert
Hinweis: Service wird im folgenden Text mit svc abgekürzt.
Werfen wir zunächst einen Blick auf die Auswirkungen von Inkonsistenzen auf Schlüsseldaten endpoints (ip:port), d. copy/ Replica), wenn für denselben Dienstnamen svcB die beiden Abfragen der beiden Knoten des Aufrufers svcA inkonsistente Daten zurückgeben, zum Beispiel: S1 = { ip1,ip2,ip3...,ip9 }, S2 = { ip2 , ip3,....ip10}, Welche Auswirkungen hat diese Inkonsistenz?
Im Vergleich zu den anderen 8 Knoten {ip2...ip9} ist der Anforderungsverkehr von ip1 und ip10 etwas geringer, aber es ist offensichtlich, dass dies in einem verteilten System auch bei Peer-to-Peer-Bereitstellungsdiensten der Fall ist Der Zeitpunkt des Eintreffens der Anforderung, der Hardwarestatus, die Betriebssystemplanung, der GC der virtuellen Maschine usw. können zu keinem Zeitpunkt vollständig konsistent sein Da das Registrierungszentrum innerhalb der vom SLA versprochenen Zeit (z. B. 1s (innerhalb)) die Daten in einen konsistenten Zustand konvergiert (d. h. die letztendliche Konsistenz erfüllt), wird der Datenverkehr im statistischen Sinne bald tendenziell konsistent sein Das Registrierungszentrum ist nach einem letztendlich konsistenten Modell konzipiert, das in der Produktionspraxis völlig akzeptabel ist.
Analyse der Partitionstoleranz und Verfügbarkeitsanforderungen
Als nächstes betrachten wir die Auswirkungen der Nichtverfügbarkeit des Registrierungszentrums auf Serviceanrufe im Fall einer Netzwerkpartition (Netzwerkpartition), d. h. wenn A in CAP ist ist nicht zufrieden. Stellen Sie sich eine typische ZooKeeper-Bereitstellungsstruktur mit drei Computerräumen für die Notfallwiederherstellung und 5 Knoten (d. h. 2-2-1-Struktur) vor, wie unten gezeigt:
Wenn eine Netzwerkpartition in Computerraum 3, also Computer, auftritt Raum 3 ist Das Netzwerk ist zu einer isolierten Insel geworden. Wir wissen, dass Knoten ZK5 nicht beschreibbar ist, obwohl der gesamte ZooKeeper-Dienst verfügbar ist, da der Leader nicht kontaktiert werden kann.
Das obige ist der detaillierte Inhalt vonWarum nutzt Alibaba ZooKeeper nicht für die Serviceerkennung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!