I.1 Java Spring Boot
Es eignet sich für den Bau von Mikroservice-Systemen
- Mit der Spring Project Bootstrap-Seite kann man ein Projekt in Sekunden aufbauen
- Es ist praktisch, verschiedene Arten von Diensten zu exportieren, wie REST API, WebSocket, Web, Streaming und Tasks
- Sehr prägnante Integration von Sicherheitsrichtlinien
- Relationale und nicht-relationale Datenbanken werden unterstützt
- Unterstützen Sie während der Laufzeit eingebettete Container wie Tomcat und Jetty
- Leistungsstarkes Entwicklungspaket mit Unterstützung für Hot Boot
- Automatisch Abhängigkeiten verwalten
- Integrierte Anwendungsüberwachung
- Unterstützt verschiedene IEDs, wie IntelliJ IDEA, NetBeans
Weitere Sprachen: .net core, Go usw
I.2 Jenkins
Automatisierte CI-Verfahren für kontinuierliche Integration
- Open Source und kostenlos
- Plattformübergreifend, Unterstützung für alle Plattformen (ich habe es auf Ubuntu 14.04 installiert, mit dem Docker-Image von Jenkins war es nicht erfolgreich)
- Master/Slave unterstützt verteilte Builds
- Eine visuelle Verwaltungsseite in Form eines Webs
- Installation und Konfiguration sind super einfach
- Tipps Schnelle und rechtzeitige Hilfe
- Hunderte von Plugins, die bereits existieren
I.3 GitLab
- Ein selbstgehostetes Git-Projektrepository, das über eine Weboberfläche für öffentliche oder private Projektinstallationen zugänglich ist.
- Es hat eine ähnliche Funktionalität wie GitHub, mit der Möglichkeit, den Quellcode zu navigieren, Fehler und Kommentare zu verwalten. Es ist möglich, den Teamzugriff auf das Repository zu verwalten, es ist sehr einfach, die eingereichten Versionen zu durchsuchen, und es stellt eine Dateihistorie-Bibliothek bereit.
- Teammitglieder können über das integrierte einfache Chatprogramm (Wall) kommunizieren. Es bietet außerdem eine Funktion zur Sammlung von Codeschnippeln, die eine einfache Wiederverwendung von Code ermöglicht und später bei Bedarf wiederfindbar ist.
- Dokcer
- Docker ist eine Open-Source-Engine, die es einfach macht, einen leichten, portablen und autarken Container für jede Anwendung zu erstellen. Container, die Entwickler auf Notebooks kompilieren und testen, können in Chargen in Produktionsumgebungen bereitgestellt werden, einschließlich VMs (virtuelle Maschinen), Bare-Metal-Plattformen, OpenStack-Cluster und anderer zugrundeliegender Anwendungsplattformen.
- Docker wird häufig in folgenden Szenarien verwendet:
- automatisierte Verpackung und Veröffentlichung von Webanwendungen;
- automatisiertes Testen und kontinuierliche Integration, Release;
- Datenbanken oder andere Hintergrundanwendungen in einer dienstorientierten Umgebung bereitstellen und optimieren;
- Bauen Sie Ihre eigene PaaS-Umgebung, indem Sie Ihre bestehende OpenShift- oder Cloud-Foundry-Plattform von Grund auf kompilieren oder erweitern.
I.4 Kubernetes
- Kubernetes ist ein Container-Cluster-Managementsystem und eine Open-Source-Plattform, die Funktionen wie automatisierte Bereitstellung, automatische Skalierung und Wartung von Containerclustern realisieren kann.
- Mit Kubernetes können Sie:
- Bereitstellen Sie Anwendungen schnell bereit
- Skaliere deine Anwendungen schnell
- Nahtlose Integration mit neuen Anwendungsfunktionen
- Ressourcen sparen und den Einsatz von Hardwareressourcen optimieren
I.5 MQ
Wenn Faktoren wie die Geschwindigkeit oder Stabilität von "Produktion" und "Verbrauch" im System inkonsistent sind, werden Nachrichtenwarteschlangen als Abstraktionsschicht benötigt, um die Unterschiede zwischen den beiden Seiten zu überbrücken. Eine Nachricht ist eine Dateneinheit, die zwischen zwei Computern übertragen wird. Nachrichten können sehr einfach sein, etwa indem sie nur Textzeichenketten enthalten; Sie kann auch komplexer sein und eingebettete Objekte enthalten. Nachrichten werden an Warteschlangen gesendet, das sind Container, die Nachrichten während der Übertragung speichern.
- Ungekoppelt
- Redundanz
- Skalierbarkeit
- Flexibilität und Spitzendurchsatz
- Wiederherstellbarkeit
- Lieferung garantiert
- Sortierung garantiert
- Pufferung
- Datenströme verstehen
- Asynchrone Kommunikation
I.6 SQL DB
- Eine Datenbank ist ein Lagerhaus, das auf Computerspeichergeräten aufgebaut ist und Daten gemäß einer Datenstruktur organisiert, speichert und verwaltet.
- Einfach ausgedrückt kann es als elektronischer Aktenschrank betrachtet werden – ein Ort, an dem elektronische Dateien gespeichert werden und Nutzer die Daten in der Datei hinzufügen, abfangen, aktualisieren, löschen und andere Operationen durchführen können.
- Im täglichen Betrieb des Wirtschaftsmanagements ist es oft notwendig, relevante Daten in ein solches "Lager" zu legen und entsprechend den Bedürfnissen des Managements zu verarbeiten.
MySQL/PostgreSQL ist ein Vertreter traditioneller relationaler Datenbanken.
HBase ist ein Vertreter der Big Tables-Technologie (Zeilenindexierung, Spaltenspeicherung).
Neo4j(http://www.neo4j.org/) ist ein Graphdatenbankrepräsentant, der zur Speicherung komplexer und mehrdimensionaler Graphstrukturdaten verwendet wird.
Redis ist ein NoSQL-Vertreter, der auf Key-Value basiert, und es gibt Redis-to-go, das Speicherdienste bereitstellt.
MongoDB/CouchDB ist ein NoSQL-Repräsentant, das auf Document basiert, und Couchbase ist eine Fusion aus Document/Key-Value-Technologie.
VoltDB ist ein Vertreter von NewSQL, mit Datenkonsistenz und guter Skalierbarkeit, und seine Leistungsbehauptung ist dutzende Male größer als die von MySQL.
TiDB ist eine verteilte SQL-Datenbank, die vom inländischen PingCAP-Team entwickelt wurde. Inspiriert von Googles F1 und Google Spanner unterstützt TiDB Funktionen wie traditionelle RDBMS und NoSQL.
I.7 TICK-Stack
InfluxDB
Zeitreihen-Datenbankwerkzeuge.
Telegraf
ist ein Werkzeug zur Datenerfassung und -speicherung. Es bietet viele Eingabe- und Ausgabe-Plugins, wie das Sammeln lokaler CPU-, Last-, Netzwerkverkehr usw. und das Schreiben dieser dann an InfluxDB oder Kafka.
Chronograf
Zeichenwerkzeuge
Kapacitor
Kapacitor ist ein Alarmtool von InfluxData, das Daten aus InfluxDB liest und TickScript entsprechend dem DLS-Typ konfiguriert, um zu warnen.
I.8 Keepalive
Keepalive ist eine Service-Software im Clustermanagement, die eine hohe Clusterverfügbarkeit gewährleistet, ähnlich wie Heartbeat, um einzelne Fehlerpunkte zu verhindern.
keepalilived basiert auf dem VRRP-Protokoll, das für Virtual Router Redundancy Protocol steht, also das Virtual Routing Redundancy Protocol.
Virtuelles Routenredundanzprotokoll, das als Protokoll zur Erreichung der hohen Verfügbarkeit von Routern betrachtet werden kann, das heißt: N Router, die dieselben Funktionen wie eine Routergruppe bereitstellen, diese Gruppe hat einen Master und mehrere Backups, und es gibt einen VIP auf dem Master, der Dienste für die Außenwelt bereitstellt (die Standardroute anderer Maschinen im LAN, in dem sich der Router befindet, ist der VIP), der Master sendet einen Multicast, und wenn das Backup das VRRP-Paket nicht empfangen kann, gilt der Master als ausgefallen. Zu diesem Zeitpunkt musst du einen Backup als Master entsprechend der Priorität des VRRP wählen. Das sorgt für eine hohe Verfügbarkeit des Routers.
Keepalived hat drei Hauptmodule, nämlich Core, Check und VRRP. Das Kernmodul ist der Kern von keepalived, das für das Starten und die Wartung des Hauptprozesses sowie das Laden und Parsen globaler Konfigurationsdateien verantwortlich ist. Check ist verantwortlich für Gesundheitsuntersuchungen, einschließlich verschiedener gängiger Untersuchungsmethoden. Das VRRP-Modul ist dafür konzipiert, das VRRP-Protokoll zu implementieren
I.9 Hafen
Harbor ist ein unternehmensfähiger Registrierungsserver zur Speicherung und Verteilung von Docker-Images.
I.10 Ignite / Redis
Das Apache Ignite In-Memory Data Organization Framework ist eine leistungsstarke, integrierte und verteilte In-Memory-Computing- und Transaktionsplattform für groß angelegte Datensatzverarbeitung mit höherer Leistung als traditionelle Festplatten- oder Flash-basierte Technologien und bietet zudem eine hochleistungsfähige, verteilte In-Memory-Datenorganisation zwischen Anwendungen und verschiedenen Datenquellen.
| Seriennummer | Projekte vergleichen | Apache Ignite | Redis | | 1 | JCache (JSR 107) | Ignite ist vollständig kompatibel mit der JCache (JSR107) Caching-Spezifikation | Nicht unterstützt | | 2 | ACID-Transaktionen | Ignite unterstützt ACID-Transaktionen vollständig, einschließlich optimistischer und pessimistischer Nebenläufigkeitsmodelle sowie READ_COMMITTED, REPEATABLE_READ und SERIALISABLE-Isolationsniveaus. | Redis bietet begrenzte Unterstützung für clientseitige optimistische Transaktionen, bei denen der Client im Falle gleichzeitiger Updates manuell erneut versuchen muss. | | 3 | Datenpartitionierung | Ignite unterstützt partitioniertes Caching, ähnlich einem verteilten Hash, bei dem jeder Knoten im Cluster einen Teil der Daten speichert und Ignite die Daten im Falle einer Topologieänderung automatisch neu ausbalanciert. | Redis bietet zwar keine Partitionierung an, aber Sharding von Repliken, was sehr starr zu bedienen ist und eine Reihe recht komplexer manueller Schritte erfordert, wann immer sich die Topologie sowohl im Client als auch auf dem Server ändert. | | 4 | Vollständige Kopie | Ignite unterstützt zwischengespeicherte Replikation, unterstützt von jedem Schlüssel-Wert-Paar für jeden Knoten im Cluster. | Redis bietet keine direkte Unterstützung für vollständige Replikation. | | 5 | Natives Objekt | Ignite ermöglicht es Benutzern, ihr eigenes Domänenobjektmodell zu verwenden und bietet native Unterstützung für jeden Java/Scala-, C++- und .NET/C#-Datentyp (Objekt), sodass Benutzer jedes Programm und Domänenobjekt einfach im Ignite-Cache speichern können. | Redis erlaubt es den Nutzern nicht, benutzerdefinierte Datentypen zu verwenden, sondern unterstützt nur vordefinierte Sammlungen grundlegender Datenstrukturen wie Set, List, Array und einige andere. | | 6 | Client-seitiger (naher) Cache | Ignite bietet direkte Unterstützung für clientseitiges Caching kürzlich abgerufener Daten. | Nicht unterstützt | | 7 | (Serverseite) Gegenüberstellung | Ignite unterstützt die direkte Ausführung jeglichen Java-, C++- und .NET/C#-Codes in einer sicherheitsnahen Form nahe an den Daten auf der Serverseite. | Redis verfügt in der Regel über keine Kollocation-Funktionen, und die Serverseite unterstützt im Grunde nur LUA-Skriptsprache, während die Serverseite keine direkte Ausführung von Java-, .NET- oder C++-Code unterstützt. | | 8 | SQL-Abfragen | Ignite unterstützt die vollständige SQL-(ANSI-99)-Syntax zur Abfrage von In-Memory-Daten. | Redis unterstützt keine Abfragesprache, nur die clientseitige Caching-API. | | 9 | Kontinuierliche Untersuchung | Ignite unterstützt sowohl clientseitige als auch serverseitige persistente Abfragen, und Nutzer können serverseitige Filter einstellen, um die Anzahl der an den Client übertragenen Ereignisse zu reduzieren oder zu senken. | Redis unterstützt clientseitige schlüsselbasierte Ereignisbenachrichtigungen, bietet jedoch keine serverseitigen Filter, was zu einem erheblichen Anstieg des Netzwerkverkehrs für Aktualisierungsbenachrichtigungen sowohl auf Client- als auch auf Serverseite führt. | | 10 | Datenbankintegration | Ignite kann externe Datenbanken – RDBMS, NoSQL und HDFS – automatisch integrieren. | Redis kann nicht mit externen Datenbanken integriert werden. |
I.11 ELCH
ELK besteht aus drei Komponenten: Elasticsearch, Logstash und Kibana;
Elasticsearch ist eine Open-Source-Suchmaschine, die verteilte, Nullkonfigurations-, Auto-Discovery-, Index-Auto-Sharding-Mechanismen, einen Index-Replica-Mechanismus, eine Restful-ähnliche Schnittstelle, mehrere Datenquellen und eine automatische Suchnutzlast bietet.
Logstash ist ein vollständig Open-Source-Tool, das Ihre Logs sammelt, analysiert und speichert, um sie später zu verwenden
Kibana ist ein Open-Source- und kostenloses Tool, das Logstash und ElasticSearch eine log-analytics-freundliche Weboberfläche bietet, die Ihnen hilft, wichtige Datenprotokolle zu aggregieren, zu analysieren und zu durchsuchen.
I.12 Kong(Nginx)
Kong ist ein hochverfügbares, leicht zu erweiterndes API-Projekt, das auf Nginx_Lua Modulen geschrieben wurde und von Mashape Open Source ist. Da Kong auf Nginx basiert, kann es mehrere Kong-Server horizontal skalieren und Anfragen gleichmäßig über eine Frontloading-Konfiguration an jeden Server verteilen, um mit einer großen Anzahl von Netzwerkanfragen umzugehen.
Kong besteht aus drei Hauptkomponenten:
KongServer: Ein Server, der auf nginx basiert und API-Anfragen empfängt.
ApacheCassandra/PostgreSQL: Wird zur Speicherung von Betriebsdaten verwendet.
Kongdashboard: Offiziell empfohlenes UI-Management-Tool, natürlich kannst du Restfull auch zur Verwaltung von AdminAPI verwenden.
Kong verwendet einen Plugin-Mechanismus zur funktionalen Anpassung, bei dem während des Lebenszyklus der API-Anfrage-Antwortschleife eine Reihe von Plugins (die 0 oder n sein können) ausgeführt werden. Das Plugin ist in Lua geschrieben und verfügt derzeit über mehrere grundlegende Funktionen: HTTP-Basisauthentifizierung, Schlüsselauthentifizierung, CORS (Cross-originResourceSharing), TCP, UDP, Dateiprotokollierung, API-Anfrage-Throttling, Anfrageweiterleitung und nginx-Überwachung.
I.13 Openstack
OpenStack+KVM
OpenStack: Open-Source-Management-Projekt
OpenStack ist ein Open-Source-Projekt, das darauf abzielt, Software für den Bau und das Management von öffentlichen und privaten Clouds bereitzustellen. Es handelt sich nicht um eine Software, sondern um eine Kombination mehrerer Hauptkomponenten, um eine bestimmte Arbeit zu erledigen. OpenStack besteht aus den folgenden fünf relativ unabhängigen Komponenten:
OpenStackCompute (Nova) ist eine Reihe von Controllern, die für die Berechnung virtueller Maschinen oder zum Start virtueller Maschineninstanzen mit Gruppen verwendet werden;
OpenStack Image Service (Glance) ist ein Bildsuch- und Abrufsystem für virtuelle Maschinen, das das Imagemanagement virtueller Maschinen ermöglicht.
OpenStack Object Storage (Swift) ist ein objektbasiertes Speichersystem für Großsysteme mit integrierter Redundanz und Fehlertoleranz, ähnlich wie Amazon S3.
OpenStackKeystone für Benutzeridentitätsdienste und Ressourcenverwaltung sowie
OpenStackHorizon, eine auf Django basierende Dashboard-Oberfläche, ist ein grafisches Verwaltungs-Frontend.
Ursprünglich Ende 2010 von NASA und Rackspace entwickelt, zielt dieses Open-Source-Projekt darauf ab, eine einfach einzusetzende, funktionsreiche und skalierbare Cloud-Computing-Plattform zu schaffen. Die erste Aufgabe des OpenStack-Projekts ist es, den Bereitstellungsprozess der Cloud zu vereinfachen und eine gute Skalierbarkeit zu gewährleisten, um das Betriebssystem des Rechenzentrums, also des Cloud-Betriebssystems, zu werden.
KVM: Offene Virtualisierungstechnologie
KVM (Kernel-basierte VirtualMachine) ist ein Open-Source-Systemvirtualisierungsmodul, das Hardwareunterstützung wie IntelVT- oder AMDV-Technologie benötigt, die vollständig virtualisiert und auf Hardware basiert und vollständig in Linux integriert ist.
2008 übernahm Red Hat Qumranet, um KVM-Technologie zu erwerben und im Rahmen seiner Virtualisierungsstrategie zu fördern, wobei KVM als einziger Hypervisor unterstützt wurde, als RHEL 6 2011 veröffentlicht wurde. KVM konzentriert sich auf hohe Leistung, Skalierbarkeit, hohe Sicherheit und niedrige Kosten.
I.14 Disconf
Mit Fokus auf verschiedene "gemeinsame Komponenten" und "gemeinsame Plattformen" des "verteilten Systemkonfigurationsmanagements" bieten wir einheitliche "Konfigurationsmanagement-Dienste" an.
I.15 Apollo
Apollo ist eine von der Framework-Abteilung von Ctrip entwickelte Konfigurationsmanagement-Plattform, die zentral die Konfiguration verschiedener Umgebungen und Anwendungscluster verwalten kann, nach Konfigurationsänderungen in Echtzeit auf die Anwendungsseite übertragen werden kann und über standardisierte Berechtigungen, Prozesssteuerung und weitere Eigenschaften verfügt.
Der Server basiert auf SpringBoot und SpringCloud und kann direkt nach der Verpackung ausgeführt werden, ohne zusätzliche Anwendungscontainer wie Tomcat zu installieren.
I.16 gRPC
gRPC ist ein leistungsstarkes, quelloffenes und vielseitiges RPC-Framework für mobile und HTTP/2-Designs. Derzeit sind C-, Java- und Go-Sprachversionen verfügbar, nämlich: grpc, grpc-Java und grpc-go. Die C-Version unterstützt C, C++, Node.js, Python, Ruby, Objective-C, PHP und C#.
gRPC basiert auf dem HTTP/2-Standard und bietet Funktionen wie bidirektionalen Fluss, Flusskontrolle, Kopfkompression und Multiplexanfragen auf einer einzigen TCP-Verbindung. Diese Funktionen sorgen für eine bessere Leistung auf mobilen Geräten und sparen Strom und Speicherplatz.
I.17-Kanal
canal ist ein Open-Source-Projekt unter Alibaba, rein Java-Entwicklung. Basierend auf inkrementeller Logparsing in Datenbanken bietet es inkrementelle Datenabonnements und -verbrauch und unterstützt derzeit hauptsächlich MySQL (unterstützt auch mariaDB).
Dienste basierend auf loginkrementellem Abonnement- und Konsumunterstützungssystem:
- Datenbankspiegelung
- Echtzeit-Datenbanksicherung
- Mehrstufige Indexierung (Verkäufer und Käufer trennen die Indizes)
- searchbuild
- Service-Cache-Aktualisierung
- Wichtige Geschäftsnachrichten wie Preisänderungen
I.18 Sparkstreaming
SparkStreaming ist eine Erweiterung der Spark-Kern-API, die eine hochdurchsatzfähige, fehlertolerante Verarbeitung von Echtzeit-Streaming-Daten ermöglicht. Unterstützung für die Datenerfassung aus verschiedenen Datenquellen, darunter Kafk, Flume, Twitter, ZeroMQ, Kinesis und TCPsockets, und nach dem Abruf von Daten aus Datenquellen können komplexe Algorithmen mit fortschrittlichen Funktionen wie Mapping, Reduce, Join und Window verarbeitet werden.
I.19 SonarQube
Sonar ist eine Open-Source-Plattform für das Code-Qualitätsmanagement, um die Qualität des Quellcodes zu verwalten und Codequalität aus sieben Dimensionen zu erkennen
Durch Plug-ins kann es das Qualitätsmanagement und die Detektion von Code in mehr als 20 Programmiersprachen unterstützen, darunter Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy usw
I.20 DataX
DataX ist ein Offline-Synchronisationstool für heterogene Datenquellen, das darauf abzielt, eine stabile und effiziente Datensynchronisation zwischen verschiedenen heterogenen Datenquellen zu erreichen, darunter relationale Datenbanken (MySQL, Oracle usw.), HDFS, Hive, ODPS, HBase, FTP und mehr.
I.21 Zen Management/Jira
Zen-Funktion 1) Produktmanagement: Produkte, Anforderungen, Pläne, Veröffentlichungen, Fahrpläne und andere Funktionen. 2) Projektmanagement: Projekte, Aufgaben, Teams, Builds, Burndown-Diagramme und andere Funktionen. 3) Qualitätsmanagement: Fehler, Testfälle, Testaufgaben, Testergebnisse und andere Funktionen. 4) Dokumentenmanagement: Produktdokumentbibliothek, Projektdokumentbibliothek, benutzerdefinierte Dokumentbibliothek und weitere Funktionen. 5) Transaktionsmanagement: Todo-Management, persönliche Angelegenheitsverwaltungsfunktionen wie Meine Aufgaben, meine Bugs, meine Bedürfnisse und meine Projekte. 6) Organisation und Management: Abteilungen, Benutzer, Gruppen, Berechtigungen und andere Funktionen. 7) Statistische Funktion: umfangreiche statistische Tabelle. 8) Suchfunktion: Finden Sie die entsprechenden Daten durch Suche.
JIRA-Merkmale 1) Problemverfolgung und -management (Problemtypen umfassen NewFeature, Bug, Task und Improvement); 2) Analysebericht zur Problemnachverfolgung; 3) Funktion des Projektkategorienmanagements; 4) Komponenten-/Modulführerfunktion; 5) Projekt-E-Mail-Adressfunktion; 6) Unbegrenzte Arbeitsabläufe.
I.22 XXJOB
XXL-JOB ist ein leichtgewichtige verteiltes Aufgabenplanungs-Framework mit den Kernzielen der Planung von schneller Entwicklung, einfachem Lernen, Leichtigkeit und leichter Skalierung.
- Einfach: Unterstützung des CRUD-Betriebs bei Aufgaben über Webseiten, einfache Bedienung, eine Minute zum Start;
- Dynamisch: Unterstützt die dynamische Änderung des Aufgabenstatus, das Pausieren/Fortsetzen von Aufgaben und das Beenden laufender Aufgaben, die sofort in Kraft treten.
- Dispatch Center HA (zentralisiert): Die Planung ist zentral gestaltet, und das "Dispatch Center" basiert auf dem Cluster-Quartz und unterstützt die Cluster-Deployment, was die HA des Dispatch-Centers sicherstellen kann.
- Ausführender HA (verteilt): Aufgaben werden verteilt ausgeführt, und der Task-"Executor" unterstützt die Cluster-Bereitstellung, um die HA-Ausführung der Aufgaben sicherzustellen.
- Registry: Der Executor registriert regelmäßig automatisch Aufgaben, und das Dispatch Center entdeckt automatisch die registrierten Aufgaben und löst deren Ausführung aus. Gleichzeitig unterstützt es auch die manuelle Eingabe von Aktuatoradressen;
- Elastische Skalierung: Sobald eine neue Ausführungsmaschine online oder offline geht, wird die Aufgabe während der nächsten Planung neu zugewiesen.
- Routing-Strategien: Bietet umfangreiche Routing-Strategien bei der Bereitstellung eines Executor-Clusters, darunter: erste, letzte, Abfrage, zufällige, konsistente HASH, am wenigsten verwendet, zuletzt ungenutzt, Failover, Busy Transfer usw.
- Failover: Wenn Failover für die Task-Routing-Policy ausgewählt wird, wechselt das System automatisch zu einem normalen Executor, um eine Planungsanforderung zu senden, falls eine Maschine im Executioner-Cluster ausfällt.
- Fehlerhandhabungsstrategie; Die Handhabungsrichtlinien für Planungsfehler umfassen: Fehleralarm (Standard), Fehlerwiederholung;
- Fehlgeschlagener Wiederholungsversuch: Wenn der Dispatch-Center-Termin fehlschlägt und die Richtlinie "Failed Retry" aktiviert ist, versucht das System es automatisch einmal erneut. Wenn der Ausführende nicht ausgeführt wird und der Callback den Zustand nicht erneut versucht, wird er automatisch erneut versucht.
- Blockierungsverarbeitungsstrategie: die Verarbeitungsstrategie, wenn die Planung für den Ausführenden zu dicht ist, einschließlich Einzelmaschinen-Seriensystem (Standard), das Verwerfen nachfolgender Planung und das Überschreiben der vorherigen Planung;
- Shard-Broadcast-Aufgabe: Wenn der Executor-Cluster bereitgestellt wird, wird die Task-Routing-Policy als "Shard Broadcast" ausgewählt, eine Task-Scheduling sendet, um alle Ausführenden im Cluster auszulösen, um eine Aufgabe auszuführen, und die Sharding-Aufgabe kann entsprechend den Sharding-Parametern entwickelt werden.
- Dynamisches Sharding: Die Sharded-Broadcast-Aufgabe wird basierend auf der Größe des Executors sharded und unterstützt die dynamische Expansion des Executor-Clusters, um die Anzahl der Shards dynamisch zu erhöhen und gemeinsam an der Geschäftsverarbeitung zu arbeiten. Bei der Durchführung von Geschäftsabläufen mit großem Datenvolumen kann dies die Kapazität und Geschwindigkeit der Aufgabenverarbeitung erheblich verbessern.
- Ereignisauslösung: Zusätzlich zur Cron-Methode und dem aufgabenabhängigen Modus zur Auslösung von Aufgaben werden ereignisbasierte Auslösermethoden unterstützt. Das Dispatch-Center stellt API-Dienste bereit, die eine einzelne Ausführung von Aufgaben auslösen, die flexibel je nach Geschäftsereignissen ausgelöst werden können.
- Überwachung des Aufgabenfortschritts: Unterstützung der Echtzeitüberwachung des Aufgabenfortschritts;
- Rolling Real Time Log: Unterstützt die Online-Ansicht der Planungsergebnisse und das vollständige Ausführungsprotokoll des Ausführenden in Echtzeit in Echtzeit und rollierend.
- GLUE: Bietet eine WebIDE, die die Online-Entwicklung von Aufgabenlogikcode, dynamische Freigabe, Echtzeitkompilierung und Effektivität unterstützt und den Prozess der Bereitstellung und des Starts eliminiert. Unterstützung von 30 Versionen der historischen Version rückwärts.
- Skriptaufgaben: Unterstützung für die Entwicklung und Ausführung von Skriptaufgaben im GLUE-Modus, einschließlich Shell, Python, NodeJS und anderer Skripte.
- Aufgabenabhängigkeiten: Unterstützung bei der Konfiguration von Unteraufgabenabhängigkeiten; wenn die Elternaufgabe ausgeführt und erfolgreich ausgeführt wird, wird die Ausführung der Unteraufgabe aktiv ausgelöst und mehrere Unteraufgaben werden durch Kommas getrennt.
- Konsistenz: Das Scheduling Center gewährleistet die Konsistenz der clusterverteilten Planung durch Datenbanksperrungen, und nur eine Task-Scheduling löst eine Ausführung aus.
- Benutzerdefinierte Aufgabenparameter: Unterstützung der Online-Konfiguration von Terminierungsparametern, die sofort in Kraft treten;
- Planungs-Threadpool: Das Planungssystem löst eine Planungsoperation mit mehreren Threads aus, um sicherzustellen, dass die Planung genau ausgeführt wird und nicht blockiert wird.
- Datenverschlüsselung: Die Kommunikation zwischen der Leitstelle und dem Executor wird verschlüsselt, um die Sicherheit der Dispositionsinformationen zu verbessern.
- E-Mail-Alarm: Unterstützen Sie den E-Mail-Alarm, wenn eine Aufgabe fehlschlägt, und unterstützen Sie die Konfiguration mehrerer E-Mail-Adressen, um Alarm-E-Mails in großen Mengen zu senden.
- Push-Maven-Zentral-Repository: Die neueste stabile Version wird in das Maven-Zentralrepository übertragen, um den Zugriff und die Nutzung des Nutzers zu erleichtern.
- Ausführender Bericht: Unterstützt die Echtzeitanzeige laufender Daten, wie z. B. die Anzahl der Aufgaben, die Anzahl der Zeitpläne, die Anzahl der Ausführenden usw. und Planungsberichte, wie z. B. Verteilungsdiagramm für Termintermine, Verteilungskarte für Terminerfolge usw.;
- Voll asynchron: Die untere Schicht des Systems realisiert vollständig asynchron, und das Traffic Peak Shaving wird für dichte Planung durchgeführt, was theoretisch den Betrieb von Aufgaben beliebiger Dauer unterstützt.
I.23 Salzstapel
Eine neue Art des Infrastrukturmanagements, einfach einzusetzen, in wenigen Minuten laufen zu können, gute Skalierbarkeit, leicht zu verwalten von Zehntausenden Servern, schnell genug, Kommunikation zwischen Servern in Sekunden.
Die zugrundeliegende Salzschicht verwendet einen dynamischen Verbindungsbus, der für Orchestrierung, Fernausführung, Konfigurationsmanagement usw. genutzt werden kann.
I.24 Istio
Als innovatives Projekt für das Management der Microservice-Service-Aggregationsschicht ist Istio das erste gemeinsame Open-Source-Projekt von Google, IBM und Lyft (einem ausländischen Fahrdienstunternehmen und Konkurrent von Uber), das eine einheitliche Lösung, Sicherheit, Verwaltung und Überwachung von Microservices bietet.
Die erste Beta ist derzeit für Kubernetes-Umgebungen, und die Community behauptet, dass in den kommenden Monaten Unterstützung für virtuelle Maschinen und andere Umgebungen wie CloudFoundry hinzugefügt wird. Istio fügt Microservices Verkehrsmanagement hinzu und schafft eine Grundlage für wertschöpfende Funktionen wie Sicherheit, Überwachung, Routing, Verbindungsmanagement und Richtlinien.
- automatische Lastverteilung für HTTP-, gRPC- und TCP-Netzwerkverkehr;
- Es bietet umfangreiche Routingregeln, um eine feine Kontrolle des Netzwerkverkehrs zu erreichen.
- Verkehrsverschlüsselung, Inter-Service-Authentifizierung und starke Identitätsansprüche;
- Flottenweite Durchsetzung von Richtlinien;
- Tiefe Telemetrie und Berichterstattung.
Architektur
Sicherheit
Grundlagen
Salt Stack + OpenStack + KVM + Kubernetes + Istio
|