So sánh replica và shard mongodb năm 2024
Trong bài trước nói về begin MongoDB và triển khai MongoDB với 01 member. Do đó có thể tham khảo cài đặt và sử dụng các thao tác cơ bản trên MongoDB 3 tại: Cài đặt và các thao tác cơ bản MongoDB 3 Show Trong bài này, mô hình triển khai replica set MongoDB sử dụng 02 member, và tận dụng 01 server trong hệ thống làm Arbiter cho việc vote Về lý thuyết mình thấy 2 nguồn này rõ ràng và dễ hiểu: https://docs.mongodb.com/manual/replication/ https://kipalog.com/posts/Replica-set-trong-MongoDB Trong phạm vi bài viết sẽ triển khai replication MongoDB 3 trên các member là CentOS 7 I. Cài đặt MongoDB 3 trên 03 serversStep1: Tạo mongodb3 repository vim /etc/yum.repos.d/mongo.repo[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc Step2: Cài đặt MongoDB và các gói công cụyum install -y mongodb-org systemctl start mongodb systemctl enable mongodb Step3: Cho phép truy cập mongodb từ một số IPAddress Soạn tệp cấu hình /etc/mongod.conf trên các server sed -i 's/127.0.0.1/0.0.0.0/' /etc/mongod.conf Cho phép truy cập mongodb từ local network firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="27017" protocol="tcp" accept' firewall-cmd --reload 2. Replication MongoDBTrong điều kiện replication MongoDB với 2 server, khi primary unvailable, thì secondary cũng sẽ không tự động thành primary được, vì nó chỉ có 01 vote. Thực tế trong môi trường product thì luôn cần ghi vào database, và tất nhiên chỉ có Primary là có thể write, secondary thì chỉ có thể read. Do đó chúng ta sẽ tận dụng một máy nào đó trong hệ thống để làm Arbiter (trọng tài) vào replica set, để vote cho secondary thành primary. – Arbiter chỉ có chức năng vote, không giữ data của hệ thống replica set, cũng như không thể trở thành primary. – Arbiter yêu cầu cấu hình tối thiểu để cài đặt mongodb, do đó chúng ta có thể tận dụng một server nào nó trong hệ thống như: monitor, application Với replica set MongoDB, member nào có priority cao hơn sẽ là primary. Do đó khi cấu hình chúng ta sẽ để server01 có priority cao hơn để làm default primary. 2.1 Replica set mà không access controlStep1: Enable replication on MongoDB Trên 03 server mà cài đặt MongoDB, thêm nội dung sau vào tệp tin cấu hình mongod.conf để enable replication với tên replica set id là: mongo_rep cat >>/etc/mongod.conf < replSetName: mongo_rep
EOF systemctl restart mongod Step2: Thiết lập hosts.conf trên 03 servers cat >>/etc/hosts < Step3: Khởi tạo MongoDB replica set trên primary Cấu hình replica set trên primary (mongo01) Note: Để sửa thông tin cấu hình replica set thực hiện như sau: MongoDB cho phép chứng thực giữa các members của replica set with 2 phương thức:
– KeyFile ( )
– x.509 () Chúng ta thực hiện chứng thực với keyFile
Nội dung của keyFile giống như chia sẻ mật khẩu chung giữa các member servers Step1: Trên primary MongoDB server
Tạo keyFile mkdir -p /mongodb/data echo "sharedpassword" >/mongodb/data/keyfile
chown -R mongod:mongod /mongodb
chmod 400 /mongodb/data/keyfile Step2: Enable chứng thực trên all member replica set
Để enable chứng thực chúng ta thêm đoạn sau vào tệp cấu hình mongodb cat >>/etc/mongod.conf < Step3: Tạo tài khoản chứng thực
Cách tạo tài khoản trong bài giới thiệu cũng có nói qua, hoặc tham khảo https://docs.mongodb.com/manual/tutorial/create-users/ yum install -y mongodb-org
systemctl start mongodb
systemctl enable mongodb 0 Step4: Copy keyfile đến các MongoDB server khác Ở đây chúng ta sẽ copy keyFile sang secondary và Arbiter member, sử dụng rsync để không phải tạo lại đường dẫn và quyền cho keyFile. yum install -y mongodb-org
systemctl start mongodb
systemctl enable mongodb 1 Step5: Copy mongod.conf đến các MongoDB server khác Để đồng bộ thông tin cấu hình MongoDB thì chúng ta cũng sử dụng rsync để copy mongod.conf đến các member của replica set yum install -y mongodb-org systemctl start mongodb systemctl enable mongodb 2 Step6: Restart mongod từ các replica set servers yum install -y mongodb-org systemctl start mongodb systemctl enable mongodb 3 Step7: Kiểm tra Replication MongoDB yum install -y mongodb-org systemctl start mongodb systemctl enable mongodb 4 Do Arbiter chỉ chứa thông cấu hình nhân bản nên chỉ có db localyum install -y mongodb-org systemctl start mongodb systemctl enable mongodb 5 Bài tiếp theo chúng ta sẽ ứng dụng Replication MongoDB cho PHP Laravel framework, với các “Read Preference” khác nhau, để thấy Replication MongoDB có thể vừa đảm nhận nhiệm vụ Hight Available và Load Sharing. |