Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Mở rộng quy mô với MongoDB:Thiết lập cơ sở hạ tầng sharding

Mở rộng quy mô với MongoDB:Thiết lập cơ sở hạ tầng sharding

Trong một bài đăng trên blog gần đây, tôi đã thảo luận khi nào bạn cần mở rộng MongoDB. Trong bài đăng này, trọng tâm là cách mở rộng MongoDB.

MongoDB phiên bản 3.0 đã giới thiệu WiredTiger làm công cụ lưu trữ mặc định. MongoDB kể từ đó đã có thể cung cấp hai cách tiếp cận khi nói đến khả năng mở rộng. Mongo hiện có thể mở rộng theo chiều dọc cũng như chiều ngang. Cả hai cách tiếp cận đều đảm bảo cần xem xét kỹ hơn.

Mở rộng quy mô với MongoDB:Thiết lập cơ sở hạ tầng sharding

Chia tỷ lệ theo chiều dọc

Chia tỷ lệ theo chiều dọc làm tăng tài nguyên máy tính, chẳng hạn như số lượng và loại CPU, hoặc dung lượng RAM hoặc dung lượng đĩa. Với lưu ý này, khi mở rộng quy mô theo chiều dọc với WiredTiger, bạn cần xác định tài nguyên nào đang gây ra bất kỳ nút cổ chai nào (cho dù đó là CPU / RAM / dung lượng đĩa hay một số kết hợp của chúng).

Lưu ý về WiredTiger RAM
Nếu RAM được phân bổ nhỏ hơn 1GB, WiredTiger thường mặc định là 256MB hoặc 50 phần trăm RAM khả dụng. Do đó, bộ nhớ cache WiredTiger phải được thay đổi kích thước nếu nhiều RAM được phân bổ.

Chia tỷ lệ theo chiều ngang

Chia tỷ lệ theo chiều ngang phân phối tài nguyên máy tính trên toàn mạng, thường bằng cách thêm máy chủ. Để phân phối dữ liệu trên nhiều nút khi chúng được thêm vào, MongoDB sử dụng kiến ​​trúc cơ sở dữ liệu được gọi là sharding, sử dụng các phạm vi khóa để phân vùng dữ liệu được phân phối giữa nhiều phiên bản cơ sở dữ liệu.

Thiết lập cơ sở hạ tầng làm sắc nét

Các thành phần vật lý liên quan đến việc thiết lập cấu hình sharding yêu cầu các mục sau.

  • Mongos hoạt động như bộ định tuyến truy vấn.
  • Định cấu hình máy chủ giữ siêu dữ liệu sharding.
  • Các nút dữ liệu giữ dữ liệu thực tế.

Để biết thêm thông tin về các thành phần vật lý, hãy truy cập Tổng quan về MongoDB của chúng tôi.

Xác định các phím phân đoạn

Sau khi bạn thiết lập cơ sở hạ tầng sharding vật lý, hãy tập trung vào khía cạnh logic của sharding. Các khóa phân đoạn đại diện cho các trường khác nhau trong một tập hợp mà MongoDB sử dụng để phân vùng dữ liệu. Thuận tiện, Mongo cho phép bạn xác định các khóa này.

Để xác định các trường liên quan đến việc triển khai khóa phân đoạn:

  1. Xác định các bộ sưu tập để phân đoạn. Các bộ sưu tập lớn hơn 200MB và dữ liệu có thể được phân phối đồng đều đại diện cho các ứng cử viên tốt cho sharding.
  2. Tạo hoặc tạo một khóa phân đoạn thích hợp. Khi tạo khóa phân đoạn, hãy xem xét các đề xuất và câu hỏi sau:
  • Có được một số thông tin chi tiết về cách ứng dụng tương tác với cơ sở dữ liệu.
  • Cân nhắc xem ứng dụng có nhiều khả năng đọc hay ghi nhiều hơn hay liệu ứng dụng có được cân bằng đồng đều hay không.
  • Hoạt động quan trọng nhất đối với cơ sở dữ liệu là gì? Ví dụ:ứng dụng có thể ghi một lượng lớn dữ liệu vào cơ sở dữ liệu, nhưng hoạt động quan trọng nhất có thể liên quan đến các truy vấn trả lại dữ liệu trong thời gian dưới 100 mili giây.
  • Các mô hình tăng trưởng dữ liệu hàng tuần và hàng tháng được mong đợi là gì?
  • Có bất kỳ vấn đề hoặc vấn đề nào cần được giải quyết, chẳng hạn như các truy vấn chậm không?
  • Ứng dụng có bận rộn hơn trong những giờ nhất định trong ngày, tuần, tháng hoặc năm không? Có phải lúc nào nó cũng bận không?

Sau khi điều tra những vấn đề này, bạn có thể bắt đầu phân tích chi tiết hơn. Bài đăng tiếp theo trên blog của chúng tôi sẽ thảo luận về cách tìm khóa phân đoạn phù hợp.