搭建MongoDB Sharding集群
从1.6版本起,MongoDB开始正式支持Sharding同时,MongoDB也推出了Replica Sets,用以替代之前版本的Replica Pairs通过把Sharding
从1.6版本起,MongoDB开始正式支持Sharding
同时,MongoDB也推出了Replica Sets,用以替代之前版本的Replica Pairs
通过把Sharding和Replica Sets相结合,我们可以搭建一个分布式的,高可用性,自动水平扩展的集群
一个典型的集群结构如下:
集群由以下3个服务组成:
另外,Chunks是指MongoDB中一段连续的数据块,默认大小是200M,一个Chunk位于其中一台Shard服务器上
下面,,搭建一个Cluster,它由4台服务器组成,包括2个Shard,3个Config,1个Route
其中每个Shard由一个Replica Set组成,每个Replica Set由2个Mongod节点,1个vote节点组成
以下是搭建配置的过程:
1. 四台服务器分别启动相应的Mongod进程:
192.168.95.216
/usr/local/mongodb/bin/mongod –fork –shardsvr –port 10000 –replSet set1 –dbpath /pvdata/mongodb_data –logpath /pvdata/mongodb_log/mongod.log
/usr/local/mongodb/bin/mongod –fork –shardsvr –port 10001 –replSet set2 –dbpath /pvdata/mongodb_data1 –logpath /pvdata/mongodb_log/mongod1.log
192.168.95.217
/usr/local/mongodb/bin/mongod –fork –shardsvr –port 10000 –replSet set1 –dbpath /pvdata/mongodb_data –logpath /pvdata/mongodb_log/mongod.log
192.168.95.218
/usr/local/mongodb/bin/mongod –fork –shardsvr –port 10000 –replSet set2 –dbpath /pvdata/mongodb_data –logpath /pvdata/mongodb_log/mongod.log
/usr/local/mongodb/bin/mongod –fork –shardsvr –port 10001 –replSet set1 –dbpath /pvdata/mongodb_data1 –logpath /pvdata/mongodb_log/mongod1.log
192.168.95.137
/usr/local/mongodb/bin/mongod –fork –shardsvr –port 10000 –replSet set2 –dbpath /opt/mongodb_data –logpath /opt/mongodb_log/mongod.log
2. 分别配置2组Replica Sets:
192.168.95.216
mongo –port 10000
config = {_id: 'set1', members: [
{_id: 0, host: '192.168.95.216:10000'},
{_id: 1, host: '192.168.95.217:10000'},
{_id: 1, host: '192.168.95.218:10001', arbiterOnly: true}
]}
rs.initiate(config)
rs.status()
192.168.95.218
mongo –port 10000
config = {_id: 'set2', members: [
{_id: 0, host: '192.168.95.218:10000'},
{_id: 1, host: '192.168.95.137:10000'},
{_id: 1, host: '192.168.95.216:10001', arbiterOnly: true}
]}
rs.initiate(config)
rs.status()
注意:2台Server上的10001对应的Mongod,它们只负责在某个node down掉后,进行vote选举新的master,它们本身并不存储数据备份
3.配置3台Config Servers:
mongod –configsvr –fork –logpath /pvdata/mongodb_log/config.log –dbpath /pvdata/mongodb_config_data –port 20000
4.配置1台Route Server:
192.168.95.216
/usr/local/mongodb/bin/mongos –fork –chunkSize 1 –configdb "192.168.95.216:20000,192.168.95.217:20000,192.168.95.218:20000" –logpath /pvdata/mongodb_log/mongos.log
chunkSize参数用来设置chunk块的大小,这里为了测试,设置成1M

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Es wird empfohlen, die neueste Version von MongoDB (derzeit 5.0) zu verwenden, da diese die neuesten Funktionen und Verbesserungen bietet. Bei der Auswahl einer Version müssen Sie funktionale Anforderungen, Kompatibilität, Stabilität und Community-Unterstützung berücksichtigen. Die neueste Version verfügt beispielsweise über Funktionen wie Transaktions- und Aggregationspipeline-Optimierung. Stellen Sie sicher, dass die Version mit der Anwendung kompatibel ist. Wählen Sie für Produktionsumgebungen die Langzeit-Support-Version. Die neueste Version bietet eine aktivere Community-Unterstützung.

Node.js ist eine serverseitige JavaScript-Laufzeitumgebung, während Vue.js ein clientseitiges JavaScript-Framework zum Erstellen interaktiver Benutzeroberflächen ist. Node.js wird für die serverseitige Entwicklung verwendet, beispielsweise für die Entwicklung von Back-End-Service-APIs und die Datenverarbeitung, während Vue.js für die clientseitige Entwicklung verwendet wird, beispielsweise für Single-Page-Anwendungen und reaktionsfähige Benutzeroberflächen.

Die Daten der MongoDB-Datenbank werden im angegebenen Datenverzeichnis gespeichert, das sich im lokalen Dateisystem, Netzwerkdateisystem oder Cloud-Speicher befinden kann. Der spezifische Speicherort ist wie folgt: Lokales Dateisystem: Der Standardpfad ist Linux/macOS: /data/db, Windows: C:\data\db. Netzwerkdateisystem: Der Pfad hängt vom Dateisystem ab. Cloud-Speicher: Der Pfad wird vom Cloud-Speicheranbieter bestimmt.

Die MongoDB-Datenbank ist für ihre Flexibilität, Skalierbarkeit und hohe Leistung bekannt. Zu seinen Vorteilen gehört: ein Dokumentdatenmodell, das eine flexible und unstrukturierte Speicherung von Daten ermöglicht. Horizontale Skalierbarkeit auf mehrere Server über Sharding. Abfrageflexibilität, Unterstützung komplexer Abfragen und Aggregationsvorgänge. Datenreplikation und Fehlertoleranz sorgen für Datenredundanz und hohe Verfügbarkeit. JSON-Unterstützung für einfache Integration mit Front-End-Anwendungen. Hohe Leistung für schnelle Reaktion auch bei der Verarbeitung großer Datenmengen. Open Source, anpassbar und kostenlos nutzbar.

MongoDB ist ein dokumentenorientiertes, verteiltes Datenbanksystem zur Speicherung und Verwaltung großer Mengen strukturierter und unstrukturierter Daten. Zu den Kernkonzepten gehören die Speicherung und Verteilung von Dokumenten und zu den Hauptfunktionen gehören dynamische Schemata, Indizierung, Aggregation, Kartenreduzierung und Replikation. Es wird häufig in Content-Management-Systemen, E-Commerce-Plattformen, Social-Media-Websites, IoT-Anwendungen und der Entwicklung mobiler Anwendungen eingesetzt.

Szenariobeschreibung für die vollständige Evakuierung von Knoten aus ProxmoxVE und den erneuten Beitritt zum Cluster. Wenn ein Knoten im ProxmoxVE-Cluster beschädigt ist und nicht schnell repariert werden kann, muss der fehlerhafte Knoten sauber aus dem Cluster entfernt und die verbleibenden Informationen bereinigt werden. Andernfalls können neue Knoten, die die vom fehlerhaften Knoten verwendete IP-Adresse verwenden, dem Cluster nicht normal beitreten, nachdem der fehlerhafte Knoten, der sich vom Cluster getrennt hat, repariert wurde, obwohl dies nichts mit dem Cluster zu tun hat Sie können nicht auf die Webverwaltung dieses einzelnen Knotens zugreifen. Im Hintergrund werden Informationen zu anderen Knoten im ursprünglichen ProxmoxVE-Cluster angezeigt, was sehr ärgerlich ist. Entfernen Sie Knoten aus dem Cluster. Wenn es sich bei ProxmoxVE um einen hyperkonvergenten Ceph-Cluster handelt, müssen Sie sich bei jedem Knoten im Cluster (außer dem Knoten, den Sie löschen möchten) auf dem Hostsystem Debian anmelden und den Befehl ausführen

Unter Linux/macOS: Erstellen Sie das Datenverzeichnis und starten Sie den Dienst „mongod“. Unter Windows: Erstellen Sie das Datenverzeichnis und starten Sie den MongoDB-Dienst über den Service Manager. In Docker: Führen Sie den Befehl „docker run“ aus. Auf anderen Plattformen: Bitte konsultieren Sie die MongoDB-Dokumentation. Überprüfungsmethode: Führen Sie den Befehl „mongo“ aus, um eine Verbindung herzustellen und die Serverversion anzuzeigen.

Die MongoDB-Datenbankdatei befindet sich im MongoDB-Datenverzeichnis, das standardmäßig /data/db ist und .bson (Dokumentdaten), ns (Sammlungsinformationen), Journal (Schreibvorgangsdatensätze) und wiredTiger (Daten bei Verwendung von WiredTiger) enthält Speicher-Engine) und config (Datenbankkonfigurationsinformationen) und andere Dateien.
