Häufig gestellte Fragen
Kurze Antworten auf die Fragen, die bei der ersten Evaluierung von Clustron gestellt werden. Jede verweist auf die ausführlichere Dokumentation.
Was ist Clustron?
Clustron ist eine Familie kombinierbarer .NET-Bausteine für verteilte Systeme — Clustering, Autorisierung, Metriken und ein verteilter Key/Value-Store. Jeder Baustein ist ein NuGet-Paket, das Sie in Ihre eigene Anwendung einbetten, ohne einen externen Koordinator (ZooKeeper, etcd oder Consul) betreiben zu müssen. Das Flaggschiff Zaris entsteht, wenn die drei Primitive zu einem verteilten Key/Value-Store zusammengesetzt werden. Siehe Was ist Clustron?.
Brauche ich Redis, und wie schneidet Clustron im Vergleich ab?
Nein — Clustron Zaris ist eine Alternative zu Redis für .NET-Systeme, keine Schicht darüber. Redis ist ein ausgereifter, sprachunabhängiger Server, den Sie als separate Infrastruktur betreiben; Zaris ist eine einbettbare .NET-Bibliothek, die Sie In-Process oder als Remote-Cluster betreiben können, mit Koordinationsprimitiven als native .NET-APIs. Wählen Sie Redis für Sprachreichweite und eine lange Produktionshistorie; wählen Sie Zaris, wenn Ihre Dienste in .NET geschrieben sind und Sie In-Process-Entwicklung und native Koordination schätzen. Siehe Clustron vs Redis.
Wann sollte ich den In-Process- und wann den verteilten Modus verwenden?
Verwenden Sie den In-Process-Modus, wenn Sie keine Infrastruktur wünschen — lokale Entwicklung, Unit- und Integrationstests und Einzelinstanz-Apps —, da der Store innerhalb Ihres eigenen Prozesses läuft und der schnellste Weg zum Start ist. Verwenden Sie den verteilten Modus, wenn ein einzelner Prozess nicht ausreicht: Hochverfügbarkeit, gemeinsamer Zustand über mehrere Instanzen oder Skalierung über eine Maschine hinaus. Die API ist in beiden identisch, sodass Sie In-Process entwickeln und verteilt bereitstellen, ohne den Anwendungscode zu ändern. Siehe In-Process- und verteilte Modi.
Sind Locks und Leases zuverlässig?
Ja — sie sind so ausgelegt, dass sie unter Ausfällen sicher sind, was der schwierige Teil ist. Ein Lease ist zeitlich begrenzter Besitz, der automatisch abläuft, wenn sein Halter abstürzt oder die Netzwerkverbindung verliert, und Zaris-Locks sind Lease-gestützt, sodass ein toter Besitzer nicht alle anderen blockieren kann. Eine Einschränkung: Bei der standardmäßigen asynchronen Replikation kann ein Failover Schreibvorgänge verlieren, die noch nicht repliziert waren; verwenden Sie daher synchrone Replikation, wenn ein Failover keine jüngsten Schreibvorgänge verlieren darf. Siehe Leases und das Koordinationsmodell.
Welche .NET-Versionen werden unterstützt?
Die Kern-Client-Abstraktionen zielen auf netstandard2.0, sodass Thin Clients sowohl unter .NET Framework 4.8 als auch unter .NET 8+ laufen. Für den In-Process-Betrieb eines Stores ist .NET 8 oder höher erforderlich, und die umfangreicheren Adapter — etwa die ASP.NET-Core-Integration — zielen auf net8.0. Siehe In-Process ausführen und die Entwurfsprinzipien in Was ist Clustron?.
Ist es sicher? Wird TLS unterstützt?
Ja. Zaris sichert einen Cluster mit drei unabhängigen Schichten, die Sie getrennt aktivieren: TLS-Verschlüsselung bei der Übertragung (auf Datenebene und Steuerungsebene), offline verifizierte Token-Authentifizierung und rollenbasierte Zugriffskontrolle (RBAC), die standardmäßig verweigert. Ein Entwicklungs-Cluster kann im Klartext mit allen dreien deaktiviert laufen, ein Produktions-Cluster läuft typischerweise mit allen dreien aktiviert. Siehe die Sicherheitsübersicht.
Kann ich es auf Kubernetes betreiben?
Ja. Es gibt ein offizielles Helm-Chart, das die Nodes als StatefulSet mit einem Headless Service im Attach-Deployment-Modell betreibt: Kubernetes betreibt die Node-Prozesse, während der Zaris-Manager sie beobachtet und die Steuerungsebene sowie die Web-Konsole bereitstellt. Peers werden über Pod-Ordinalzahlen und DNS gefunden, sodass das Hochskalieren ein Hot kubectl scale ist — ohne ConfigMap-Änderung und ohne Neustart bestehender Pods. Rolling Updates sind sicher — jeder Node stellt Convergence-gesteuerte /livez- und /readyz-Probes bereit, sodass Kubernetes das Routing zu einem Pod beendet, bevor er drainiert, und ein PodDisruptionBudget freiwillige Unterbrechungen begrenzt. Clients außerhalb des Clusters werden über einen externen Listener mit beworbenen Adressen unterstützt, abgesichert durch TLS mit Multi-SAN-Zertifikaten. All dies wurde auf einem Live-Cluster validiert.
Die wichtigste Einschränkung ist, dass das Herunterskalieren noch nicht Drain-sicher ist — verkleinern Sie jeweils um einen Schritt und lassen Sie die Replikation den Replikationsfaktor zwischen den Schritten wiederherstellen. Siehe den Kubernetes-Deployment-Leitfaden — einschließlich Skalierung — und die Deployment-Übersicht.
Was ist der Unterschied zwischen Server, Node und Store?
Ein Server ist eine Maschine, auf der Zaris läuft, identifiziert durch seine Management-Adresse (host:7801). Ein Node ist ein einzelner Store-Prozess, den ein Server ausführt — einer pro Partition-Replica-Slot —, und ein Server führt typischerweise mehrere Nodes aus. Ein Store ist die logische Dateneinheit, die diese Nodes den Clients präsentieren. Ein Server kann Nodes für mehrere Stores hosten, und die Nodes eines Stores können mehrere Server umfassen. Siehe Server, Node und Store oder das Glossar.
Ist Zaris kostenlos? Brauche ich eine Lizenz für die Produktion?
Zaris kann kostenlos heruntergeladen und zum Entwickeln verwendet werden — das Client-SDK, der In-Process-Modus, die vollständige Datenebene und die Koordinationsprimitive sowie die PowerShell-Administration — und jedes Deployment enthält drei Monate Support. Der Produktionsbetrieb von Zaris ist lizenzpflichtig, und fortgesetzter Support (SLAs, direkter Zugang) nach den enthaltenen drei Monaten erfordert einen Support-Plan. In der Praxis ändert sich nach Ablauf des Support-Zeitraums lediglich, dass die Web-Konsole auf einen Lizenzbildschirm gesperrt wird; Datenebene, Replikation, Failover und PowerShell-Administration funktionieren weiter, sodass ein Produktions-Cluster weiter bedient. Setzen Sie ZARIS_SUPPORT_KEY (wird mit einer Lizenz ausgestellt), um die Konsole wieder zu aktivieren, oder ZARIS_SUPPORT_ACK_NONPROD=true für die Entwicklung. Siehe Support und Lizenzierung und Support-Pläne.