MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

So sánh các mẫu triển khai cho MongoDB

Triển khai MongoDB trong sản xuất chỉ có thể thực sự hoạt động nếu tuân thủ đúng mẫu triển khai. Việc triển khai một tập hợp bản sao trong một máy chủ duy nhất không đảm bảo tính khả dụng cao của dữ liệu. Xử lý dữ liệu lớn đòi hỏi nghiên cứu sâu rộng và triển khai tối ưu, bằng cách kết hợp các tùy chọn có sẵn hoặc chọn một tùy chọn có lợi ích hứa hẹn cao nhất.

Các mẫu triển khai cho MongoDB bao gồm:

  1. Bộ bản sao ba thành viên
  2. Tập hợp bản sao được phân phối trên hai hoặc nhiều trung tâm dữ liệu.

Bộ bản sao ba thành viên

Replication là một chiến lược mở rộng quy mô cho MongoDB nhằm nâng cao Tính khả dụng cao của dữ liệu. Một tập hợp bản sao bao gồm:

  1. Một nút chính:chịu trách nhiệm về tất cả các hoạt động ghi thông lượng và cũng có thể được đọc từ đó.
  2. Các nút phụ:Chỉ có thể được sử dụng cho các hoạt động đọc nhưng có thể được chọn làm chính trong trường hợp nút hiện có bị lỗi. Họ nhận được các bản cập nhật dữ liệu của mình từ một nhật ký hoạt động do thành viên chính của nhóm tạo ra.
  3. Trọng tài viên. Được sử dụng để tạo điều kiện thuận lợi cho việc bầu cử sơ bộ trong trường hợp có số lượng thành viên nhóm sao chẵn. Nó không lưu trữ bất kỳ bản sao dữ liệu nào.

Chỉ có thể đạt được lợi ích của một tập hợp bản sao với số lượng tối thiểu là ba thành viên có kiến ​​trúc sau:

Tiểu học-Trung học-Trung học

Đây là khuyến nghị nhất vì nó có khả năng chịu lỗi lớn hơn và giải quyết các hạn chế của việc thêm thành viên mang dữ liệu thứ ba như chi phí.

Việc triển khai này sẽ luôn cung cấp hai bản sao hoàn chỉnh bên cạnh dữ liệu chính do đó đảm bảo tính khả dụng cao. Lỗi bộ chính sẽ kích hoạt bộ sao để chọn bộ chính mới và hoạt động phân phối sẽ tiếp tục như bình thường. Nếu thành viên chính cũ còn sống, nó sẽ được phân loại là thành viên phụ.

Trong quá trình bầu cử, các thành viên báo hiệu cho nhau qua nhịp tim và không có hoạt động ghi nào diễn ra trong thời gian này

Sau quá trình bầu cử, chúng tôi giả định kiến ​​trúc sẽ cải cách là:

Người ghi nợ chính-Phụ

Điều này đảm bảo tập hợp bản sao vẫn có sẵn ngay cả khi nhóm chính hoặc phụ không có sẵn bằng cách tạo điều kiện thuận lợi cho quá trình bầu cử của nhóm phụ với nhóm chính. Các trọng tài không mang theo bất kỳ bản sao dữ liệu nào do đó yêu cầu ít tài nguyên hơn để quản lý.

Một hạn chế với việc triển khai này là; không dư thừa vì chỉ có hai phần tử mang dữ liệu:chính và phụ. Điều này dẫn đến khả năng chịu lỗi thấp hơn.

Khả năng chịu lỗi phải có thể đảm bảo:

  1. Tính khả dụng của tính năng ghi:cần có đa số thành viên của nhóm bản sao biểu quyết để duy trì hoặc bầu ra thành viên chính chịu trách nhiệm về hoạt động ghi.
  2. Dự phòng dữ liệu:nhiều thành viên có thể chấp nhận ghi để tránh khôi phục lại

Cấu hình Primary-Secondary-Arbiter chỉ hỗ trợ khía cạnh khả dụng ghi sao cho nếu một phần tử duy nhất của tập hợp không có sẵn thì cấu hình chính vẫn có thể được duy trì.

Tuy nhiên, việc không hỗ trợ khía cạnh thứ hai dẫn đến một số hậu quả hoạt động nếu thành viên phụ không khả dụng:

  • Sẽ không có hoạt động sao chép nào, đặc biệt nếu tệp thứ cấp ngoại tuyến trong thời gian dài. Khi thiết bị phụ ở chế độ ngoại tuyến quá lâu, nó có thể rơi khỏi oplog buộc người dùng phải đồng bộ hóa lại trong khi khởi động lại.
  • Dự phòng dữ liệu sẽ bị phá hủy buộc chỉ hoạt động ghi chính hiện tại mới được thừa nhận.
  • Tùy chọn đa số cần quan tâm sẽ không cung cấp dữ liệu mới nhất cho các ứng dụng được kết nối và các quy trình nội bộ. Đây là trường hợp cấu hình của bạn dự kiến ​​ghi để yêu cầu đa số xác nhận, do đó bị chặn cho đến khi có sẵn phần lớn các thành viên mang dữ liệu.
  • Di chuyển phân đoạn giữa các phân đoạn cũng sẽ bị xâm phạm nếu tập hợp bản sao là một phần của một phân đoạn được phân đoạn.
  • Gây áp lực lên bộ nhớ cache của công cụ lưu trữ WiredTiger nếu quá trình khôi phục xảy ra và không thể nâng cao điểm cam kết phần lớn.

Để tránh những hậu quả này, người ta có thể chọn cấu hình Chính-Phụ-Phụ vì nó tăng khả năng chịu lỗi.

Lưu ý:Khả năng chịu lỗi không chỉ xuất hiện trong trường hợp hỏng hóc mà một số hoạt động hệ thống như nâng cấp phần mềm và bảo trì thông thường có thể buộc thành viên không có mặt trong thời gian ngắn.

Tập hợp bản sao được phân phối trên hai hoặc nhiều trung tâm dữ liệu

Tính khả dụng cao có thể được nâng lên một cấp độ khác bằng cách phân phối các thành viên tập hợp bản sao trên các trung tâm dữ liệu khác biệt về mặt địa lý. Cách tiếp cận này sẽ tăng khả năng dự phòng bên cạnh việc đảm bảo khả năng chịu lỗi cao trong trường hợp bất kỳ trung tâm dữ liệu nào không khả dụng.

Nếu tất cả các thành viên nằm trong một trung tâm dữ liệu duy nhất, thì tập hợp bản sao dễ bị lỗi trung tâm dữ liệu như quá độ mạng và mất điện.

Nên giữ ít nhất một thành viên trong trung tâm dữ liệu thay thế, sử dụng một số lượng lẻ các trung tâm dữ liệu và chọn một phân phối các thành viên sẽ đưa ra đa số cho cuộc bầu cử hoặc tối thiểu cung cấp một bản sao dữ liệu trong trường hợp thất bại.

Cấu hình phải đảm bảo rằng nếu bất kỳ trung tâm dữ liệu nào gặp sự cố, tập hợp bản sao vẫn có thể ghi được vì các thành viên còn lại có thể tổ chức bầu cử.

Phân phối dữ liệu của bạn ít nhất trên ba trung tâm dữ liệu.

Thành viên có thể bị giới hạn tài nguyên hoặc bị hạn chế về mạng, do đó khiến họ không thích hợp để trở thành chính trong trường hợp chuyển đổi dự phòng. Bạn có thể định cấu hình những thành viên này không trở thành thành viên chính bằng cách ưu tiên cho họ là 0.

Các thành viên trong trung tâm dữ liệu có thể có mức độ ưu tiên cao hơn các trung tâm dữ liệu khác để dành cho họ quyền ưu tiên biểu quyết để họ có thể bầu sơ bộ trước các thành viên trong các trung tâm dữ liệu khác.

Tất cả các thành viên trong Tập hợp bản sao phải có thể giao tiếp với nhau.

Kết luận

Lợi ích nhân rộng có thể được nâng lên thành trạng thái hứa hẹn hơn bằng cách phân phối các thành viên trên một số trung tâm dữ liệu. Điều này về cơ bản làm tăng khả năng chịu lỗi bên cạnh việc đảm bảo dự phòng dữ liệu. Replica Tập hợp các thành viên khi được phân phối trên hai hoặc nhiều trung tâm dữ liệu sẽ cung cấp các lợi ích trên một trung tâm dữ liệu như:

Nếu một trong các trung tâm dữ liệu gặp sự cố, dữ liệu vẫn có sẵn để đọc, không giống như một phân phối trung tâm dữ liệu duy nhất.

Thao tác ghi vẫn có thể được chấp nhận bất cứ khi nào trung tâm dữ liệu với các thành viên thiểu số gặp sự cố.

Vẫn có thể thực hiện thao tác đọc nếu trung tâm dữ liệu với đa số thành viên biểu quyết bị trục trặc, không giống như trường hợp trung tâm dữ liệu đơn lẻ.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB và MySQL

  2. Đếm phần tử mảng phù hợp với điều kiện

  3. Làm thế nào để cài đặt mongoDB trên Windows?

  4. Làm cách nào để tạo một kết xuất MongoDB cho cơ sở dữ liệu của tôi?

  5. Cách tìm một chuỗi con trong một trường trong Mongodb