Cassandra este concepută pentru a gestiona datele mari. Caracteristica principală a Cassandrei este de a stoca date pe mai multe noduri fără un singur punct de eșec.
Motivul acestui tip de arhitectură a Cassandrei a fost că defecțiunea hardware poate apărea în orice moment. Orice nod poate fi oprit. În caz de eșec, pot fi utilizate datele stocate într-un alt nod. Prin urmare, Cassandra este proiectată cu arhitectura distribuită.
Cassandra stochează date pe diferite noduri cu o arhitectură distribuită de la egal la egal.
Toate nodurile schimbă informații între ele folosind protocolul Gossip . Bârfa este un protocol în Cassandra prin care nodurile pot comunica între ele.
În acest tutorial, veți învăța-
- Componentele Cassandrei
- Replicarea datelor
- Operațiune de scriere
- Citiți Operațiunea
Componentele Cassandrei
Există următoarele componente în Cassandra;
- Nodul
Nodul este locul în care sunt stocate datele. Este componenta de bază a Cassandrei.
- Centru de date
O colecție de noduri se numește centru de date. Multe noduri sunt clasificate ca un centru de date.
- Cluster
Clusterul este colecția multor centre de date.
- Jurnal de comitere
Fiecare operație de scriere este scrisă în jurnalul de comitere. Jurnalul de comitere este utilizat pentru recuperarea blocării.
- Mem-table
După datele scrise în jurnalul de comitere, datele sunt scrise în Mem-table. Datele sunt scrise temporar în Mem-table.
- SSTable
Când Mem-table atinge un anumit prag, datele sunt transferate într-un fișier de disc SSTable.
Replicarea datelor
Deoarece poate apărea problema hardware sau legătura poate fi oprită în orice moment în timpul procesului de date, este necesară o soluție pentru a oferi o copie de rezervă atunci când a apărut problema. Deci, datele sunt reproduse pentru a nu asigura un singur punct de eșec.
Cassandra plasează replici de date pe noduri diferite pe baza acestor doi factori.
- Unde se plasează următoarea replică este determinat de Strategia de replicare .
- În timp ce numărul total de replici plasate pe diferite noduri este determinat de factorul de replicare .
Un factor de replicare înseamnă că există doar o singură copie a datelor, în timp ce trei factori de replicare înseamnă că există trei copii ale datelor pe trei noduri diferite.
Pentru a ne asigura că nu există un singur punct de eșec, factorul de replicare trebuie să fie de trei.
Există două tipuri de strategii de replicare în Cassandra.
SimpleStrategy
SimpleStrategy este utilizat atunci când aveți un singur centru de date. SimpleStrategy plasează prima replică pe nodul selectat de partiționer. După aceea, replicile rămase sunt plasate în sensul acelor de ceasornic în inelul nodului.
Iată reprezentarea picturală a SimpleStrategy.
NetworkTopologyStrategy
NetworkTopologyStrategy este utilizat atunci când aveți mai mult de două centre de date.
În NetworkTopologyStrategy, replicile sunt setate separat pentru fiecare centru de date. NetworkTopologyStrategy plasează replicile în sensul acelor de ceasornic în inel până când ajunge la primul nod dintr-un alt rack.
Această strategie încearcă să plaseze replici pe diferite rafturi din același centru de date. Acest lucru se datorează motivului pentru care uneori pot apărea defecțiuni sau probleme în rack. Apoi, replicile de pe alte noduri pot furniza date.
Iată reprezentarea picturală a strategiei topologiei rețelei
Operațiune de scriere
Coordonatorul trimite o cerere de scriere la replici. Dacă toate replicile sunt activate, vor primi o cerere de scriere indiferent de nivelul lor de consistență.
Nivelul de consistență determină câte noduri vor răspunde înapoi cu confirmarea de succes.
Nodul va răspunde înapoi cu confirmarea de succes dacă datele sunt scrise cu succes în jurnalul de comitere și memTable.
De exemplu, într-un singur centru de date cu factor de replicare egal cu trei, trei replici vor primi cerere de scriere. Dacă nivelul de consistență este unul, o singură replică va răspunde cu confirmarea succesului, iar celelalte două vor rămâne inactive.
Să presupunem că dacă cele două replici rămase pierd date din cauza coborârii nodurilor sau a unei alte probleme, Cassandra va face rândul consecvent prin mecanismul de reparație încorporat din Cassandra.
Aici este explicat, cum are loc procesul de scriere în Cassandra,
- Când cererea de scriere ajunge la nod, în primul rând, se conectează în jurnalul de comitere.
- Apoi Cassandra scrie datele în mem-table. Datele scrise în tabelul mem pe fiecare cerere de scriere scriu, de asemenea, în jurnalul de comitere separat. Mem-table este o dată stocată temporar în memorie în timp ce jurnalul de comitere înregistrează înregistrările tranzacțiilor în scopuri de backup.
- Când mem-table este plină, datele sunt transferate în fișierul de date SSTable.
Citiți Operațiunea
Există trei tipuri de cereri de citire pe care un coordonator le trimite copiilor.
- Cerere directă
- Cerere de rezumat
- Citiți cererea de reparații
Coordonatorul trimite o cerere directă la una dintre replici. După aceea, coordonatorul trimite cererea de rezumat la numărul de replici specificat de nivelul de consistență și verifică dacă datele returnate sunt date actualizate.
După aceea, coordonatorul trimite o cerere de rezumat tuturor copiilor rămase. Dacă vreun nod dă valoare depășită, o cerere de reparație citită în fundal va actualiza aceste date. Acest proces se numește mecanism de reparare a citirii.
rezumat
Acest tutorial explică arhitectura internă Cassandra și modul în care Cassandra reproduce, scrie și citește date în diferite etape. De asemenea, aici explică modul în care Cassandra menține nivelul de consistență pe tot parcursul procesului.