Về mặt kiến trúc , MongoDB gồm có 4 thành phần:
- Mongod: đây là một node để lưu trữ và truy xuất dữ liệu
- Shard: đây là một tập hợp gồm nhiều Mongod tạo thành một cụm dữ liệu , mỗi mongod là một bản sao dữ liệu. Nó có kiến trúc Master- Slave. Do đó trong mỗi Shard sẽ có một bản sao là Master và các bản sao còn lại là Slave. Trong đó, chỉ có Master là có thể đọc và ghi dữ liệu, các slave còn lại chỉ cho phép đọc dữ liệu.
- Config server: nó hoạt động như một bộ chứa siêu dữ liệu trong MongoDB về các đối tượng được lưu trữ trong các mongod. Config server sẽ được sử dụng trong trường hợp các mongod bị lỗi. Thường trong một hệ cơ sở dữ liệu MongoDB sẽ có từ 1 đến 3 Config Server.
- Mongos: Đây là thành phần duy nhất có thể giao tiếp với các thành phần bên ngoài. Nó sẽ tiếp nhận yêu cầu từ máy khách và chuyển tiếp các yêu cầu này đến vùng thích hợp.
Các thành phần này giao tiếp với nhau, trao đổi qua lại trong hệ thống và tạo cho MongoDB một cơ chế hoạt động đặc biệt đó là sharding. Với cơ chế này, MongoDB sẽ chia nhỏ một khối dữ liệu lớn ra nhiều phần khác nhau để lưu trữ phân tán. Điều này giúp tăng khả năng mở rộng, lưu trữ và xử lý của hệ thống này. Các bản dữ liệu sau khi chia nhỏ sẽ được nhân bản thành nhiều mongos. Tập hợp các mongos này sẽ được gọi mà một shard. Mỗi mongos có thể là một collection hoặc một phần của collection và một collection có thể được lưu trữ trải dài trên nhiều shard. Địa chỉ, cấu hình của các shard này sẽ được lưu trữ trên 1 máy chủ là config server. Nhờ đó, khi tiếp nhận một yêu cầu từ máy khách, thành phần mongod sẽ tìm kiếm vị trí các dữ liệu được yêu cầu trong config server. Sau khi đã có được địa chỉ của shard chứa dữ liệu cần, mongod sẽ vào kho chứa các shard để lấy dữ liệu đó ra để xử lý và trả về cho máy khách.
CHƯƠNG 2: QUẢN TRỊ VẬN HÀNH VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB