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

Giới thiệu về khả năng mở rộng quy mô lớn với MongoDB

Được xuất bản lần đầu vào ngày 4 tháng 6 năm 2018, tại ObjectRocket.com/blog

Chúng tôi có thể xác định chia tỷ lệ như loại bỏ vảy của cá. Tuy nhiên, với cơ sở dữ liệu, chia tỷ lệ đề cập đến khả năng mở rộng để đáp ứng các nhu cầu bổ sung xung quanh bộ nhớ, đĩa, RAM, CPU, chu kỳ tính toán, mạng hoặc các tài nguyên khác.

Giới thiệu về khả năng mở rộng quy mô lớn với MongoDB

Làm cách nào để bạn biết khi nào là thời điểm để mở rộng quy mô?

Ngày nay, người ta thường thấy sự tăng trưởng nhanh chóng của dữ liệu và tỷ lệ chấp nhận ứng dụng nhanh chóng, chẳng hạn như thời điểm ứng dụng bắt đầu phát triển và việc sử dụng ngừng hoạt động. Khi điều này xảy ra, bạn sẽ phát triển nhanh hơn môi trường ban đầu của mình. Sự tăng trưởng đó có thể xảy ra do nhu cầu lưu trữ dữ liệu vật lý hàng đầu, số lần truy cập hiệu suất và sự suy thoái sẽ đòi hỏi nhiều tài nguyên hơn. Hãy nghĩ đến CPU, RAM, mạng hoặc sự kết hợp của tất cả các lĩnh vực đó. Bạn có thể chủ động lập kế hoạch để tăng trưởng hoặc bạn có thể chọn mở rộng quy mô khi bạn bắt đầu nhận thấy các lượt truy cập hiệu suất nhỏ.

Chủ động mở rộng quy mô

Ít nhất hai mẫu chung có thể xảy ra khi bạn chủ động lập kế hoạch mở rộng quy mô:

  • Sắp tới, bạn sẽ có một sự thúc đẩy lớn về hoạt động tiếp thị và bạn sẽ phát triển đáng kể về số lượng khách hàng hoặc lượng dữ liệu.
  • Ứng dụng hoặc hoạt động kinh doanh của bạn có xu hướng hoạt động theo chu kỳ (chẳng hạn như mua sắm vào dịp Giáng sinh, giải pháp cho Năm mới, v.v.) và bạn mong muốn hoạt động gia tăng dẫn đến việc thu thập và lưu giữ một lượng lớn dữ liệu.

Đọc bài đăng của chúng tôi:Cách xác định thời điểm thích hợp để mở rộng các phiên bản MongoDB của bạn.

Mở rộng quy mô theo cách phản ứng

Nếu bạn gặp phải những trở ngại và bạn kỳ vọng sẽ tiếp tục phát triển, bạn cần phải nghĩ đến việc mở rộng quy mô.

Các dấu hiệu rắc rối bao gồm những điều như mối quan tâm sau:

  • Tăng thời gian truy vấn cho người dùng cuối
  • Số lần đăng nhập tăng lên
  • Yêu cầu và máy chủ bị đóng băng
  • Khiếu nại về cơ sở dữ liệu từ các nhà phát triển
  • Thời gian phản hồi của máy chủ chậm hơn
  • Tăng tải trên máy chủ
  • Lỗi hết bộ nhớ
  • Bầu cử ngoài ý muốn
  • Các lỗi trong nhật ký

Khi bạn bắt đầu thấy những dấu hiệu này, đã đến lúc bắt đầu mở rộng quy mô để theo kịp nhu cầu và đảm bảo rằng bạn không mất khách hàng.

Bạn có thể chia tỷ lệ theo chiều dọc (lên) hoặc theo chiều ngang (hết)

Giới thiệu về khả năng mở rộng quy mô lớn với MongoDB

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

Đây là câu tục ngữ Big Iron Phương pháp:Một máy lớn với nhiều tài nguyên (lõi CPU, tốc độ CPU cao hơn, nhiều RAM, dung lượng lưu trữ). Các lợi ích chính của việc mở rộng quy mô dọc bao gồm giảm độ phức tạp về kiến ​​trúc và ít máy chủ để duy trì hơn. Điều này rất hữu ích nếu bạn không có bất kỳ ai để xử lý việc bảo trì cho bạn.

Ngày nay có một số cách để chia tỷ lệ theo chiều dọc. Một số tùy chọn đó bao gồm phần cứng hàng hóa tốt hơn, ổ đĩa và dung lượng lưu trữ rẻ hơn, tùy chọn lưu trữ tốt hơn, bộ nhớ rẻ hơn, phần mềm tốt hơn và mạng để bạn có thể xử lý chuyển đổi dự phòng và gián đoạn một cách linh hoạt hơn.

Mở rộng quy mô là lý tưởng cho nhiều ứng dụng và nhu cầu, và chúng tôi khuyên bạn nên dùng Bộ bản sao chúng ta thảo luận trong phần sau. Một điều cần lưu ý khi bạn sử dụng các bộ bản sao lớn hơn là có thể có chi phí ẩn khi mở rộng quy mô theo chiều dọc. Nếu môi trường của bạn tiếp tục phát triển nhanh chóng, bạn có thể phải liên tục chuyển sang các máy lớn hơn hoặc có thêm tài nguyên cho đến khi bạn đạt đến điểm không còn là một lựa chọn. Bạn cũng nên xem xét rằng các chu kỳ nâng cấp kém hiệu quả hơn trên một máy chủ lưu trữ lớn hơn so với môi trường được mở rộng theo chiều ngang. Với tốc độ tăng trưởng liên tục, bạn phải quyết định xem mình có nên tiếp tục mở rộng quy mô hay không hoặc liệu bạn có thể có lợi khi mở rộng quy mô theo chiều ngang.

Chia tỷ lệ theo chiều ngang

Sharding là chia tỷ lệ theo chiều ngang. Sharding lưu trữ dữ liệu trên nhiều nút, phân phối tải và các quy trình trên các nút. Việc sao chép được xử lý bằng cách sử dụng mô hình Bản sao chính với khả năng thêm các nút bổ sung nếu cần.

Bộ cân bằng tải phân bổ các khối dữ liệu trên các đĩa trên các nút.

Điều này làm tăng khả năng đọc và ghi bằng cách phân phối các hoạt động đọc và ghi trên một nhóm máy, thay vì máy búa có ghi hoặc đọc. May mắn thay, đã có những cải tiến lớn trong chức năng cân bằng trong một vài bản phát hành gần đây. Chia tỷ lệ theo chiều ngang tận dụng khả năng sharding tích hợp trong MongoDB® và hưởng lợi từ việc sử dụng phần cứng hàng hóa rẻ hơn.

Khi bạn mở rộng quy mô theo chiều ngang, bạn thêm tài nguyên bằng máy chủ vật lý hoặc máy chủ ảo.

  • Vật lý - rất nhiều phần cứng hàng hóa chi phí thấp hơn
  • Ảo - thêm lõi hoặc nút CPU bổ sung bằng cách sử dụng máy ảo hoặc đám mây
  • Kết nối mạng - thêm bộ cân bằng tải, các quy trình mongoS® bổ sung, v.v.

Sử dụng công nghệ cân bằng tải được cải tiến (phần cứng và phần mềm) để đưa lưu lượng truy cập đến nơi cần đến bằng cách sử dụng bộ cân bằng tải.

Làm cách nào để triển khai quy mô với các nhóm bản sao trong MongoDB?

MongoDB có thể mở rộng quy mô theo chiều ngang bằng cách sử dụng các bộ bản sao lớn với một Chính và hai Phụ lục có thông tin liên lạc nhịp tim cho trạng thái tăng hoặc giảm. Nhân rộng xảy ra trên các thiết bị thứ hai thông qua hậu cần hoạt động.

Chia tỷ lệ theo chiều ngang:Tập hợp bản sao hay sharding?

Đánh đổi với sharding là sự phức tạp tổng thể tăng lên. Nhưng sharding cũng mang lại lợi ích bằng cách đơn giản hóa việc bảo trì. Nó cho phép nâng cấp luân phiên và cho phép bạn thực hiện các thao tác nhất định như xây dựng chỉ mục song song đồng thời trên phân đoạn và các nút của bạn.

Bộ bản sao Mài sắc
Đơn giản Cần có chuyên môn
Nhiều lượt đọc trên một tập dữ liệu rộng (Không muốn phân tán các tập hợp) Rất nhiều bản ghi và cập nhật (Bạn muốn chuyển trực tiếp đến các phân đoạn chính xác để biết kết quả)
Nhiều dữ liệu, tỷ lệ hoạt động thấp hơn Nhiều dữ liệu, nhiều hoạt động
Cần thêm bình thường tài nguyên, chẳng hạn như đĩa Cần nhiều tài nguyên hơn, bao gồm đĩa, RAM, CPU, phạm vi ghi

Tại sao chọn MongoDB được quản lý từ ObjectRocket?

Rackspace ObjectRocket có nghĩa là chuyên môn . Chúng tôi đã quản lý MongoDB trên quy mô lớn ngay từ đầu. Chúng tôi cung cấp hỗ trợ cho các tập hợp bản sao lớn hơn và chúng tôi là một trong những nhà cung cấp đầu tiên cung cấp hỗ trợ cho các MongoDBclusters được phân mảnh lớn hơn. Các kỹ sư và DBA của chúng tôi có kinh nghiệm và đã vượt qua những trở ngại rất phức tạp — những trở ngại mà các nhà cung cấp khác thường chưa từng nghe thấy.

Một số khách hàng lớn nhất của chúng tôi trong ngành công nghệ tiếp thị (phân tích di động, phương tiện truyền thông, chiến dịch email, phân tích quảng cáo trên thiết bị di động và phương tiện kỹ thuật số) thường gặp phải những lỗi mà không ai khác nhìn thấy hoặc biết cách khắc phục. Hàng tỷ tin nhắn và tài liệu từ nhiều loại khách hàng, hàng nghìn chiến dịch lớn và nhỏ — nền tảng của chúng tôi lưu trữ tất cả.

Dịch vụ chúng tôi cung cấp bao gồm:

  • Cơ sở hạ tầng
  • Bộ nhớ
  • IOPS
  • Mạng
  • Hỗ trợ thực hành tốt nhất, không cần thực hiện nữa. Câu trả lời đúng 24 × 7.

Xem các gói và giá cả.

Chúng tôi mong muốn cung cấp các giải pháp đám mây cung cấp các thiết lập hoàn toàn mạnh mẽ và không cung cấp các thứ hai của bạn trên khối lượng ảo. Do đó, chúng tôi tránh các vấn đề về hiệu suất có thể phát sinh nếu một cuộc bầu cử xảy ra và cuộc bầu cử sơ bộ của bạn kết thúc trên các máy chủ kém mạnh mẽ hơn chỉ được cung cấp thứ hai. Đó là nó để mở rộng quy mô. Đừng quên tìm hiểu thêm về thời điểm mở rộng các phiên bản MongoDB của bạn, các mẹo làm sắc nét, chọn các phím phân đoạn tốt nhất và hơn thế nữa.

Tìm hiểu thêm về Dịch vụ Rackspace DBA.

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể nhấp vào Trò chuyện bán hàng để trò chuyện ngay bây giờ và bắt đầu cuộc trò chuyện.