Phân cụm MongoDB là gì?

Cụm trong MongoDB là một thuật ngữ được sử dụng để mô tả các cụm bị phân mảnh hoặc cụm bị phân mảnh. Mục đích của việc tạo một cụm về cơ bản là để mở rộng quy mô đọc và ghi trong một số nút. Và vì nó bị phân mảnh nên một nút đơn lẻ không phải xử lý tất cả dữ liệu và do đó, bạn có thể tách dữ liệu cùng với nhiều nút của phân đoạn để xử lý hiệu quả và nhanh hơn

Nếu bạn muốn tìm hiểu thêm về MongoDB, hãy xem hướng dẫn MongoDB và nếu bạn muốn được chứng nhận, hãy xem khóa học cấp chứng chỉ MongoDB từ Intellipaat. Xem video mới nhất về Kiến trúc MongoDB để giúp bạn bắt đầu với cơ sở dữ liệu NoSQL này

MongoDB là một chương trình cơ sở dữ liệu định hướng tài liệu đa nền tảng nguồn có sẵn để lưu trữ khối lượng lớn. Được phân loại là chương trình cơ sở dữ liệu NoSQL, MongoDB sử dụng các tài liệu giống như JSON với các lược đồ tùy chọn


Bạn có thể tạo cụm cơ sở dữ liệu MongoDB bất kỳ lúc nào từ menu Tạo bằng cách chọn Cơ sở dữ liệu. Thao tác này sẽ đưa bạn đến trang Tạo cơ sở dữ liệu

Phân cụm MongoDB là gì?

Trong menu tạo, nhấp vào Cơ sở dữ liệu để mở trang tạo cụm cơ sở dữ liệu. Đây là nơi bạn chọn cấu hình cụm cơ sở dữ liệu của mình, như số lượng và kích thước của các nút cũng như vùng trung tâm dữ liệu

Chọn một trung tâm dữ liệu

Trong phần Chọn trung tâm dữ liệu, hãy chọn trung tâm dữ liệu cho cụm cơ sở dữ liệu của bạn

Phân cụm MongoDB là gì?

Trang này liệt kê các trung tâm dữ liệu mà bạn hiện có nhiều tài nguyên nhất. Số lượng tài nguyên bạn có trong mỗi trung tâm dữ liệu được liệt kê ở bên phải dưới dạng tài nguyên X. Di chuột qua văn bản này để xem các tài nguyên cụ thể mà bạn có trong trung tâm dữ liệu đó

Để có hiệu suất tốt nhất, hãy tạo cơ sở dữ liệu của bạn trong cùng một trung tâm dữ liệu với các tài nguyên DigitalOcean khác của bạn. Sau khi tạo, bạn không thể di chuyển cụm của mình sang trung tâm dữ liệu khác

Mỗi khu vực có một hoặc nhiều trung tâm dữ liệu, mỗi trung tâm có một mạng VPC khác nhau. Bằng cách bao gồm các tài nguyên trong cùng một trung tâm dữ liệu, tất cả chúng đều có quyền truy cập vào cùng một giao diện mạng riêng, giúp giảm độ trễ và giữ cho lưu lượng truy cập giữa chúng không bị định tuyến qua internet công cộng

Chọn một công cụ cơ sở dữ liệu

Trong phần Chọn công cụ cơ sở dữ liệu, chọn MongoDB

Phân cụm MongoDB là gì?

Chúng tôi hiện đang hỗ trợ phiên bản 4. 4 và 5. 0. Bạn không thể thay đổi phiên bản MongoDB sau khi tạo cụm

Chọn cấu hình cụm

Trong phần Chọn cấu hình cụm, hãy chọn loại máy cũng như số lượng và kích thước của các nút cơ sở dữ liệu. Mỗi tùy chọn liệt kê chi phí kết hợp hàng tháng, chi phí hàng giờ tương đương và thông số kỹ thuật của nút. Để có thêm tùy chọn, hãy nhấp vào Gói sản phẩm bổ sung

Phân cụm MongoDB là gì?

Bạn cũng có thể thêm tối đa hai nút dự phòng vào cụm của mình. Các nút dự phòng đảm bảo rằng dữ liệu của bạn luôn khả dụng bằng cách cung cấp cho cụm của bạn tính sẵn sàng cao và chuyển đổi dự phòng

Bạn có thể tăng số lượng hoặc kích thước của các nút cơ sở dữ liệu bất cứ lúc nào. Tuy nhiên, do rủi ro về tính toàn vẹn của dữ liệu, bạn không thể giảm kích thước các nút

Hoàn thiện và tạo

Trong phần cuối cùng, Hoàn thiện và Tạo, hãy chọn tên cho cụm, dự án để thêm vào và bất kỳ thẻ nào bạn muốn sử dụng

Phân cụm MongoDB là gì?

Có ba tiêu đề phụ trong phần này

  • Chọn một cái tên. Bạn có thể để tên được tạo tự động cho cơ sở dữ liệu hoặc chọn tên tùy chỉnh. Tên phải là duy nhất, dài từ 3 đến 63 ký tự và chỉ chứa các ký tự chữ và số, dấu gạch ngang và dấu chấm

  • Chọn một dự án. Bạn có thể để dự án mặc định hoặc chọn một dự án khác

  • Thẻ. Bạn có thể thêm thẻ bằng cách nhập thẻ vào hộp văn bản và nhấn enter. Các thẻ chỉ có thể chứa các chữ cái, số, dấu hai chấm, dấu gạch ngang và dấu gạch dưới

Sau khi tạo, bạn luôn có thể chỉnh sửa các thẻ của cơ sở dữ liệu hoặc chuyển nó sang một dự án khác;

Khi bạn đã sẵn sàng, hãy nhấp vào nút Tạo cụm cơ sở dữ liệu

Các cụm thường mất năm phút trở lên để cung cấp, nhưng bạn có thể hoàn thành các tác vụ cấu hình quan trọng như hạn chế các kết nối gửi đến trong khi chờ đợi

MongoDB là một hệ thống quản lý cơ sở dữ liệu mở rộng phi quan hệ NoSQL được sử dụng bởi một số ứng dụng web để lưu trữ dữ liệu. Nó được phân loại là cơ sở dữ liệu toàn diện vì nó có thể mở rộng dễ dàng bằng cách thêm nhiều tài nguyên hơn vào máy chủ (chia tỷ lệ theo chiều dọc) hoặc thêm nhiều máy chủ (chia tỷ lệ theo chiều ngang) vào hệ thống phân tán

MongoDB lưu trữ dữ liệu dưới dạng tài liệu giống như JSON với các lược đồ động. Mỗi cơ sở dữ liệu MongoDB bao gồm các bộ sưu tập các tài liệu khác nhau và mỗi bộ sưu tập và tài liệu có một ObjectID duy nhất do MongoDB cung cấp hoặc do lập trình viên tạo ra. Do đó, MongoDB loại bỏ các lược đồ và bảng cố định được sử dụng trong các hệ thống quản lý cơ sở dữ liệu quan hệ

MongoDB có thể trùng lặp dữ liệu, nhưng nó mang lại tốc độ nhanh hơn, cho phép người dùng truy cập dữ liệu. Nó có sẵn trong các phiên bản cộng đồng (miễn phí sử dụng), doanh nghiệp (gói trả phí) và Atlas (đám mây). MongoDB Atlas là một dịch vụ dựa trên đám mây cho phép các nhà phát triển xây dựng các ứng dụng hiện đại. Nhà phát triển có thể triển khai cơ sở dữ liệu đám mây được quản lý trên nhiều nền tảng đám mây công cộng

Cách cài đặt MongoDB

Bạn có thể cài đặt MongoDB trên Windows, Mac OS hoặc Ubuntu. Vì MongoDB sử dụng rất nhiều RAM, tốt hơn hết là bạn nên chạy MongoDB trên Ubuntu hoặc Mac OS. Hệ điều hành Windows có thể cạnh tranh với RAM và do đó làm chậm ứng dụng

Trong hướng dẫn này, chúng ta sẽ xem cách cài đặt MongoDB trên Ubuntu 20. 04

Cài đặt MongoDB trên Ubuntu 20. 04

Để cài đặt MongoDB trên Ubuntu 20. 04, bạn phải có Ubuntu 20. 04 với người dùng quản trị không phải root và tường lửa được định cấu hình UFW. Bạn có thể nhanh chóng lấy MongoDB từ kho gói chính thức của Ubuntu. Tuy nhiên, kho lưu trữ này có thể chứa phiên bản lỗi thời. Để đảm bảo bạn nhận được phiên bản MongoDB mới nhất, bạn phải bao gồm kho lưu trữ gói chuyên dụng của MongoDB trong các nguồn APT của mình. Điều này sẽ cho phép bạn cài đặt MongoDB-org, một gói hướng đến phiên bản MongoDB mới nhất

MongoDB 5. 0 là phiên bản mới nhất, với các tính năng mới thú vị như bộ sưu tập chuỗi thời gian, toán tử tổng hợp mới như $dateAdd, $dateSubtract và $getField, v.v. Để bắt đầu, chúng tôi sẽ bắt đầu bằng cách cập nhật chỉ mục gói APT và cài đặt các phụ thuộc bằng dòng lệnh sau

sudo apt update

sudo apt install wget curl gnupg2 software-properties-common apt-transport-https ca-certificates lsb-release

Tải xuống và nhập khóa GPG công khai cho bản phát hành MongoDB mới nhất bằng lệnh sau

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

Ngoài ra, sử dụng

curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb.gpg

Lệnh này sẽ trả về OK nếu khóa được thêm thành công

Tiếp theo, bạn phải thêm kho lưu trữ MongoDB thông qua đoạn mã sau

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $( lsb_release -cs)/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Sau khi chạy lệnh này, bước tiếp theo là cài đặt các gói cập nhật MongoDB

sudo apt update 
sudo apt install mongodb-org

Nhấn phím 'Y' và 'ENTER' để chấp nhận lời nhắc cài đặt. Thao tác này sẽ cài đặt MongoDB trên hệ thống của bạn. Tuy nhiên, nó vẫn chưa sẵn sàng để sử dụng. Bạn phải khởi động Mongo thông qua lệnh sau

sudo systemctl start mongod.service

Kiểm tra trạng thái MongoDB để đảm bảo rằng nó đang chạy

sudo systemctl status mongod

Đầu ra sẽ giống như thế này

Phân cụm MongoDB là gì?
Nguồn. https. //www. fosslinux. com/50185/install-mongodb-ubuntu. htm

Sau đó, kích hoạt MongoDb để khởi động khi khởi động thông qua lệnh sau

________số 8

Khi hoàn tất, bạn có thể định cấu hình bảo mật, cho phép truy cập từ xa, tạo Người dùng và Cơ sở dữ liệu, gán vai trò quản trị viên cho người dùng, v.v. Bạn cũng có thể điều chỉnh MongoDB để đảm bảo hiệu suất tối ưu mọi lúc

Bây giờ bạn đã cài đặt MongoDB, chúng ta sẽ xem cách định cấu hình cụm MongoDB

Cụm MongoDB là gì?

Một cụm đề cập đến một tập hợp các máy chủ MongoDB hoạt động cùng nhau. Một cụm MongoDB có thể đề cập đến một “bộ bản sao” hoặc một “cụm phân đoạn. ”

Một số máy chủ mang một bản sao của cùng một dữ liệu trong một bộ bản sao. Một bộ bản sao thường bao gồm ba nút. Một nút chính nhận tất cả các thao tác đọc và ghi từ ứng dụng khách và hai nút phụ bảo vệ khỏi lỗi

Nếu nút chính bị lỗi, MongoDB sẽ tự động chỉ định một nút phụ để thay thế nó, trở thành nút chính mới chịu trách nhiệm cho các thao tác đọc và ghi. Các bộ bản sao đảm bảo tính sẵn sàng cao vì luôn có sẵn cùng một bộ dữ liệu

Một số máy chủ trong cụm phân đoạn mang một đoạn của toàn bộ dữ liệu, cho phép hoạt động hiệu quả hơn và lưu trữ dữ liệu lớn hơn. Về cơ bản, một cụm phân đoạn là một tập hợp các bộ bản sao; . Khi ứng dụng khách thực hiện thao tác đọc/ghi, yêu cầu sẽ chuyển qua bộ định tuyến xác thực phân đoạn nào chứa dữ liệu được yêu cầu. Yêu cầu sau đó được gửi đến phân đoạn

Theo truyền thống, các cụm MongoDB được gọi là cụm phân mảnh nhưng hiện được sử dụng cho cả hai cấu hình. Kiến trúc cụm Sharded cho phép khả năng mở rộng theo chiều ngang dễ dàng

Thiết lập cụm MongoDB

Ở đây, chúng ta sẽ xem xét việc thiết lập cụm MongoDB được phân đoạn. Kiến trúc sharded trông như thế này

Phân cụm MongoDB là gì?
Nguồn. https. //dba. giao dịch cổ phiếu. com/câu hỏi/82551/data-distribution-in-mongodb-with-shards-and-replica-sets

Kiến trúc cụm Shard bao gồm ba thành phần

  1. Máy chủ phân mảnh. Phân đoạn là một máy chủ cơ sở dữ liệu bao gồm các bộ bản sao khác nhau, mỗi bộ chứa một phần dữ liệu của bạn. Mỗi bộ bản sao hoặc phân đoạn chịu trách nhiệm về một số giá trị được lập chỉ mục trong cơ sở dữ liệu của bạn
  2. Bộ định tuyến truy vấn (mongos). Mongos là một tiến trình chạy trên ứng dụng khách giao tiếp với MongoDB. Vì dữ liệu được phân phối giữa các phân đoạn khác nhau nên truy vấn phải được định tuyến đến phân đoạn chứa dữ liệu được yêu cầu. Thông lệ tiêu chuẩn là có các bộ định tuyến truy vấn khác nhau cho mỗi máy chủ ứng dụng
  3. Cấu hình máy chủ. Máy chủ cấu hình lưu trữ siêu dữ liệu cho các phân đoạn. Mongos giao tiếp với máy chủ cấu hình để tìm ra bản sao nào được đặt để truy vấn dữ liệu. Thông thường, các máy chủ cấu hình phải bao gồm ít nhất ba máy chủ. Họ không có khả năng chuyển đổi dự phòng;

Thiết lập cụm MongoDB yêu cầu bạn chạy từng thành phần này dưới dạng các quy trình riêng biệt

Quy trình thiết lập cụm

Bạn sẽ cần một hệ thống khác để thiết lập từng thành phần trong môi trường sản xuất. Tuy nhiên, chúng tôi sẽ đặt tất cả các quy trình trên một máy chủ cho mục đích này

Bước 1. Tạo các thư mục để đại diện cho các phân đoạn và máy chủ cấu hình

Bước đầu tiên là tạo các thư mục khác nhau. Đầu tiên, tạo ba thư mục cấu hình cho các máy chủ cấu hình, sau đó tạo ba thư mục phân đoạn cho các bộ bản sao riêng lẻ. Mã sẽ trông giống như thế này

mkdir cfg0 cfg1 cfg2

mkdir a0 a1 a2 b0 b1 b2 c0 c1 c2 d0 d1 d2

(mỗi chữ cái đại diện cho một mảnh khác nhau)

Khi bạn nhập cái này, bạn sẽ nhận được một con trỏ truy vấn;

Bước 2. Khởi động máy chủ cấu hình

Sử dụng lệnh sau

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
0

Vì chúng tôi chạy mọi quy trình trên cùng một máy chủ, điều quan trọng là phải chỉ định một cổng khác cho các phiên bản MongoDB. Sau khi thiết lập máy chủ cấu hình đầu tiên, bạn sẽ nhập mã tương tự cho các máy chủ cấu hình còn lại, thay đổi cổng, dbpath và logpath trong từng trường hợp

Sau cùng, các máy chủ cấu hình đã bắt đầu, hãy đăng nhập vào máy chủ đầu tiên trên cổng 26050

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
1

Sau đó bắt đầu sao chép cho máy chủ bằng cách sử dụng

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
2

Sau đó thêm các máy chủ cấu hình còn lại trong bản sao bằng cách sử dụng

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
3

Chúng tôi đã sử dụng các địa chỉ cổng liên tiếp cho các máy chủ khác nhau. Bạn có thể kiểm tra trạng thái của các máy chủ cấu hình của mình trong vỏ mongo bằng cách sử dụng;

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
4

Bạn sẽ thấy tất cả ba máy chủ được thêm id, tên, sức khỏe, trạng thái, v.v. Sau đó, thoát khỏi cấu hình nghiêm trọng bằng cách sử dụng

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
5

Bước 3. Bắt đầu phân đoạn

Bắt đầu phiên bản phân đoạn đầu tiên bằng lệnh sau

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
6

Sau đó, bắt đầu các phiên bản khác trong bản sao được đặt trên một cổng khác với logpath và dbpath phù hợp. Lặp lại quá trình tương tự cho các mảnh khác

Khi tất cả các phiên bản được thiết lập và chạy, hãy khởi động phân đoạn và bắt đầu sao chép phân đoạn

Đầu tiên, đăng nhập vào phiên bản a0, sau đó bắt đầu sao chép

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
7

Sau đó thêm hai máy chủ khác

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
8

Lặp lại quy trình tương tự cho các phiên bản b0, c0 và d0 và thêm các bộ bản sao

Bước 4. Bắt đầu phiên bản Mongos

Bước tiếp theo là bắt đầu mongos. Mongo đóng vai trò là giao diện giữa máy khách và môi trường được phân đoạn. Bắt đầu phiên bản mongos thông qua dòng sau

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
9

Chúng tôi có thể chạy nhiều phiên bản mongos để tăng tính khả dụng của mongos cho khách hàng. Điều này sẽ được thiết lập bằng một lệnh tương tự nhưng thay đổi logpath và cổng

curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb.gpg
0

Tiếp theo, đăng nhập vào phiên bản mongos

curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb.gpg
1

Từ phiên bản mongos này, bạn có thể thêm các phiên bản bộ bản sao khác nhau (a, b, c, d) dưới dạng phân đoạn bằng cách sử dụng lệnh

curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb.gpg
2

Sau đó, thêm bộ bản sao bằng cách sử dụng cùng một mã, nhưng gán cổng chính cho bộ b, sau đó là c và d

Để kiểm tra trạng thái của môi trường sharded của bạn, bạn có thể chạy lệnh

curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb.gpg
3

Nó sẽ hiển thị cho bạn các phân đoạn a, b, c và d khác nhau và các bộ bản sao trong mỗi

Thêm cơ sở dữ liệu và bộ sưu tập vào phân đoạn

curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb.gpg
4

Hiển thị cho bạn các cơ sở dữ liệu có sẵn, bao gồm cơ sở dữ liệu cấu hình, mydb và quản trị viên. Kết quả có thể trông như thế này

quản trị viên 0. 000GB

cấu hình 0. 002GB

mydb 0. 000GB

Để phân mảnh bất kỳ cơ sở dữ liệu nào trong số này. Ví dụ, để phân đoạn cơ sở dữ liệu mydb, bạn nhập mã

curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb.gpg
5

Lệnh này sẽ thêm quản trị viên vào cơ sở dữ liệu được phân đoạn và bạn có thể thấy điều đó khi nhập sh. tình trạng()

Sau khi bạn đã phân mảnh cơ sở dữ liệu, bạn có thể kích hoạt phân mảnh cho các bộ sưu tập. Tham số thứ hai (_id. 1) xác định khóa phân đoạn bạn muốn giữ cho bộ sưu tập

mongos> hiển thị bộ sưu tập

sản phẩm

bán hàng

mongo> sh. shardCollection(“mydb. đã bán”), (_id. 1)

Khi bạn chạy sh. trạng thái, bạn sẽ thấy một cái gì đó như thế này

mydb. bán hàng

chìa khóa mảnh. {"_Tôi". 1}

độc nhất. sai

thăng bằng. thật

miếng, mảnh nhỏ.  

d1

{ "_Tôi". { “$minkey”. 1}} –>> { “_id”. { “$minkey”. 1}} bật. d Dấu thời gian(1, 0)

Các khối giá trị hiển thị phân vùng dữ liệu thành các khối. Từ phần trên, chúng tôi thấy rằng dữ liệu chỉ nằm trên phân đoạn d vì nó là tối thiểu. Tuy nhiên, khi dữ liệu tăng lên, nó sẽ được chia thành nhiều phần và được đặt vào các phân đoạn khác nhau

Phần kết luận

Ở đây, chúng tôi đã xem xét cách thiết lập cụm MongoDB trên một máy chủ. Trong một cụm sản xuất, mỗi phân đoạn sẽ nằm trên một máy khác nhau và máy chủ cấu hình và mongos cũng sẽ nằm trên các máy khác

Để tìm hiểu thêm về lưu trữ cụm máy chủ và lưu trữ cơ sở dữ liệu, hãy liên hệ với chúng tôi tại ServerMania và chúng tôi sẽ giúp bạn chọn các hệ thống phù hợp cho ứng dụng của mình

Làm cách nào để sử dụng cụm trong MongoDB?

Đăng nhập vào tài khoản MongoDB Atlas của bạn tại https. //đám mây. mongodb. com. Bấm vào nút “Tạo”. Chọn loại cụm của bạn (chuyên dụng, không có máy chủ, dùng chung). Chọn nhà cung cấp đám mây và khu vực của bạn

Cách MongoDB theo dõi dữ liệu cụm?

Môngos theo dõi dữ liệu trên phân đoạn đó bằng cách lưu siêu dữ liệu từ máy chủ cấu hình vào bộ đệm ẩn . Người Mông Cổ sử dụng siêu dữ liệu để định tuyến các hoạt động từ các ứng dụng và máy khách đến các phiên bản mongodb. Một mongos không có trạng thái liên tục và tiêu tốn tài nguyên hệ thống tối thiểu.

Chúng ta có thể tạo bao nhiêu cụm trong MongoDB?

Bạn chỉ có thể triển khai một cụm miễn phí cho mỗi dự án Atlas.

Cụm NoSQL là gì?

Tạo cụm MongoDB nhiều nút. MongoDB là một cơ sở dữ liệu tài liệu NoSQL có kiến ​​trúc chủ-tớ . Khi tạo một cụm và nhân rộng nó, bạn phải tạo và quản lý một cụm được phân đoạn và một bộ sao chép, đây là tên gọi khác của cụm sao chép.