Cụm mongodb kỹ thuật sốocean

Ngược lại với cơ sở dữ liệu MongoDB một máy chủ, một cụm MongoDB cho phép cơ sở dữ liệu MongoDB có quy định về chiều ngang trên nhiều máy chủ với việc chia tách hoặc sao chép dữ liệu đảm bảo tính khả dụng cao với các bản sao

Nội dung chính Hiển thị

  • Các cụm từ trong MongoDB là gì?
  • Cụm Atlas MongoDB là gì?
  • Tạo một cụm từ trong MongoDB
  • MongoDB sao chép bản sao
  • Bộ bản sao MongoDB là gì?
  • Làm thế nào để các bản sao MongoDB hoạt động?
  • Đọc và ghi các hoạt động trong một bộ sao
  • Chia sẻ MongoDB
  • Cụm Sharded là gì?
  • Môi trường sản xuất
  • Làm cách nào để tìm tên MongoDB của tôi?
  • Làm cách nào để thay đổi tên cụm từ trong MongoDB?
  • Cụm từ cơ sở dữ liệu là gì?
  • Làm cách nào để kết nối với cụm MongoDB?

Các cụm từ trong MongoDB là gì?

Trong bối cảnh của MongoDB, cụm từ cụm từ thường được sử dụng cho một tập hợp bản sao hoặc cụm từ bị che khuất. Một bộ sao là bản sao của nhóm máy chủ MongoDB chứa các bản sao của cùng một dữ liệu; . bộ bản sao hoặc cụm phân mảnh. Bộ bản sao là bản sao của một nhóm máy chủ MongoDB chứa các bản sao của cùng một dữ liệu;

Một cụm đoạn bị hỏng thường được gọi là Tỷ lệ ngang, trong đó dữ liệu được phân phối trên nhiều máy chủ

Mục đích chính của Sharded MongoDB là mở rộng quy định đọc và viết dọc theo nhiều mảnh vỡ

Cụm Atlas MongoDB là gì?

MongoDB Atlas Cluster là một dịch vụ cơ sở dữ liệu NoQuery trong đám mây công cộng (có sẵn trong Microsoft Azure, Google Cloud Platform, Amazon Web Services). Đây là một dịch vụ MongoDB được quản lý và chỉ với một vài cú nhấp chuột, bạn có thể thiết lập một cụm MongoDB hoạt động, có thể truy cập từ trình duyệt web yêu thích của bạn

Bạn không cần cài đặt bất kỳ phần mềm nào trên máy trạm của mình vì bạn có thể kết nối với MongoDB trực tiếp từ giao diện người dùng web cũng như kiểm tra, truy vấn và trực tiếp hóa dữ liệu

Ngoài ra, nếu bạn thích làm việc với dòng lệnh, bạn có thể kết nối bằng Shell Mongo. Để thực hiện điều này, bạn cần cấu hình tường lửa từ cổng web để nhận IP của bạn. Từ trang chủ, điều hướng đến bảo mật và sau đó truy cập mạng. Cuối cùng, nhấp vào Thêm địa chỉ IP và thêm IP của bạn. nếu bạn thích làm việc với dòng lệnh, bạn có thể kết nối bằng mongo shell. Để làm điều này, bạn sẽ cần định cấu hình tường lửa từ cổng web để chấp nhận IP của bạn. Từ trang chủ, điều hướng đến Bảo mật và sau đó Truy cập mạng. Cuối cùng, nhấp vào “Thêm địa chỉ IP” và thêm IP của bạn

Sau đó, thay thế cài đặt cấu hình sau (tên cụm MongoDB Atlas, tên cơ sở dữ liệu và tên người dùng) trong cửa sổ dòng lệnh Mongo Shell. Ví dụ

mongo "mongodb+srv://<clustername>.nupbd.mongodb.net/<dbname>" --username <username>

  

Lưu ý. Khi sử dụng Shell Mongo như trên, bạn sẽ được nhắc nhập mật khẩu mà bạn đã gửi khi khai triển MongoDB được tạo

Tạo một cụm từ trong MongoDB

Cho dù ý định ban đầu của bạn là về việc phát triển bằng chứng về các ứng dụng khái niệm hoặc lập kế hoạch cho môi trường sản xuất, một điểm khởi đầu rất tốt là tạo ra một cụm từ MongoDB mới trên Atlas MongoDB. Bằng cách sử dụng tầng miễn phí, thiết lập mặc định là khai triển cụm MongoDB với bộ sao. Tuy nhiên, nếu bạn muốn bật Sharding, thì bạn phải bật tính năng riêng này và chỉ định số lượng mảnh vỡ có. bộ bản sao. Tuy nhiên, nếu bạn cũng muốn bật phân đoạn, thì bạn phải bật riêng tính năng này và chỉ định số lượng phân đoạn cần có

MongoDB sao chép bản sao

Bộ bản sao MongoDB là gì?

Một bộ sao MongoDB chắc chắn sao chép được thực thi bằng cách cung cấp dự kiến ​​phòng dữ liệu và tính khả dụng cao hơn một máy chủ MongoDB

Nếu triển khai MongoDB thiếu một bộ sao, điều đó có nghĩa là tất cả dữ liệu sẽ có mặt trong máy chủ chính xác. Trong trường hợp máy chủ chính không thành công, thì tất cả dữ liệu sẽ bị mất - nhưng không phải khi bộ sao được bật. Do đó, chúng ta có thể thấy ngay tầm quan trọng của công việc có một bản sao được đặt để khai thác MongoDB

Ngoài lỗi sai, các bộ bản sao còn có thể cung cấp thêm khả năng đọc hoạt động cho cụm MongoDB, hướng khách hàng đến các máy chủ bổ sung, sau đó giảm tải tổng thể của cụm

Các bộ sao cũng có thể có lợi cho các ứng dụng phân tán do địa phương dữ liệu mà họ cung cấp, để các hoạt động đọc nhanh hơn và bài hát xảy ra với các bộ sao thay vì phải đi qua một máy chủ

Làm thế nào để các bản sao MongoDB hoạt động?

Một cụm MongoDB cần có một nút chính và một tập hợp các nút thứ cấp để được coi là một bộ sao

Nhiều nhất, một nút chính phải tồn tại và vai trò của nó là nhận tất cả các hoạt động viết. Tất cả các thay đổi trên bộ dữ liệu chính của nút chính đều được ghi lại trong một bộ sưu tập giới hạn đặc biệt có tên là Nhật ký hoạt động (OPLOG)

Vai trò của các nút phụ là sau đó sao chép nhật ký hoạt động của nút chính và đảm bảo rằng các bộ dữ liệu phản ánh chính xác các bộ dữ liệu chính. Chức năng này được minh họa trong sơ đồ sau

Cụm mongodb kỹ thuật sốocean

Sao chép từ nút Oplog chính đến các thứ hai xảy ra không đồng bộ, cho phép bản sao được thiết lập để tiếp tục hoạt động mặc dù thất bại tiềm năng của một hoặc nhiều thành viên của nó. Nếu nút chính hiện tại mặc nhiên không tồn tại, một cuộc bầu cử sẽ diễn ra để xác định nút chính mới. Trong bản kịch có hai nút phụ, một trong nút thứ cấp sẽ trở thành nút chính

Nếu vì bất kỳ lý do nào, chỉ có một nút thứ cấp tồn tại, một trường hợp đặc biệt được gọi là Actionter có thể được thêm vào một bộ bản sao chỉ có thể tham gia vào các cuộc bầu cử bản sao nhưng không . Điều này có nghĩa là nó có thể cung cấp dự phòng dữ liệu và nó sẽ luôn là một tài liệu quan trọng, tức là nó có thể trở thành một nút chính hoặc nút phụ, trong khi một nút chính có thể trở thành nút cấp và đảo ngược

Sự thất bại của một nút chính không phải là lý do duy nhất mà một cuộc bầu cử bản sao có thể xảy ra. Cuộc bầu cử bản sao có thể xảy ra vì những lý do khác nhau để giải đáp nhiều sự kiện khác nhau, chẳng hạn như khi một nút mới được thêm vào tập hợp bản sao, khi bắt đầu một bản sao, trong quá trình

Đọc và ghi các hoạt động trong một bộ sao

Một bản sao được đặt trong cụm MongoDB là trong suốt cho các ứng dụng khách. Điều này có nghĩa là họ có thể xác định xem cụm từ có được bật một bộ bản sao hay dữ liệu mà nó chạy trên một máy chủ khai thác hay không

Tuy nhiên, MongoDB cung cấp các hoạt động đọc và ghi bổ sung trên các lệnh đầu vào và tiêu chuẩn đầu ra. Ứng dụng khách có thể tùy chọn giải quyết trực tiếp cho bản sao đặt nút Một thao tác đọc nên thực thi. Theo mặc định, tất cả các hoạt động đọc được hướng đến nút chính, nhưng các công cụ định tuyến có thể đến các trường thứ hai cũng có thể được cấu hình;

Một số chế độ ưu tiên đọc có thể được cấu hình. Ví dụ. Nếu ứng dụng máy khách được cấu hình để chuyển trực tiếp đến trường thứ hai, thì tham số chế độ trong sở thích đọc phải được đặt thành thứ cấp. Nếu có nhu cầu cụ thể có thể chọn tốc độ mạng ít nhất bất kể điều gì xảy ra trong nút chính hay bất kỳ nút phụ nào, thì chế độ ưu tiên đọc gần nhất sẽ được cấu hình. Tuy nhiên, trong tùy chọn này, cơ sở dữ liệu có khả năng gây ra hoạt động (nếu nút gần nhất là nút thứ cấp) do bản chất sao chép không đồng bộ từ chính đến thứ hai

Ngoài ra, chế độ đọc ưu tiên có thể được đặt thành ưu tiên chính hoặc ưu tiên thứ nhất. Hai chế độ này cũng sử dụng một thuộc tính khác được gọi là MaxStalessionSeconds để xác định bất kỳ nút nào của bộ bản sao nên hướng dẫn đọc được định hướng. Trong tất cả các trường hợp có cơ hội để hoạt động xảy ra trên một nút phi nguyên tắc, bạn phải chắc chắn rằng ứng dụng của bạn có thể tải dữ liệu cũ

Khi viết dữ liệu trong một bộ sao MongoDB, bạn có thể bao gồm các tùy chọn bổ sung để đảm bảo rằng Viết đã lan truyền thành công trong suốt cụm từ. Điều này liên quan đến việc thêm một tài sản viết mối quan tâm cùng với một hoạt động bổ sung. Một quan tâm ghi có nghĩa là mức độ thừa nhận mà chúng ta mong muốn có cụm từ trên mỗi mối hoạt động ghi và nó bao gồm các tùy chọn sau

W value can be set to 0, has mean is not required to verify the write. 1 là mặc định và nó có nghĩa là nó chỉ yêu cầu nút chính để xác nhận ghi, trong khi bất kỳ số nào lớn hơn 1 tương ứng với số nút cộng với số chính cần xác nhận. Ví dụ, 4 có nghĩa là thứ 3 cần báo hiệu cũng như nút chính. giá trị w có thể được đặt thành 0, nghĩa là không cần xác nhận ghi. 1 là giá trị mặc định và điều đó có nghĩa là nó chỉ yêu cầu nút chính xác nhận ghi, trong khi bất kỳ số nào lớn hơn 1 tương ứng với số lượng nút cộng với nút chính cần xác nhận. Ví dụ: 4 có nghĩa là 3 nút phụ cần báo hiệu cũng như nút chính

Giá trị J tương ứng với việc MongoDB được ghi trên đĩa trong một khu vực đặc biệt được gọi là Tạp chí hay không. Điều này được sử dụng từ MongoDB cho mục đích phục hồi trong trường hợp phần cứng tắt và nó được bật theo mặc định. giá trị j tương ứng với việc MongoDB đã được ghi trên đĩa trong một khu vực đặc biệt được gọi là tạp chí hay chưa. Cái này được sử dụng từ MongoDB cho mục đích khôi phục trong trường hợp tắt cứng và nó được bật theo mặc định

Cuối cùng, giá trị Wtimeout là lệnh nên đợi trước khi trả về bất kỳ kết quả nào. Nếu điều này không được xác định rõ ràng và nếu vì bất kỳ lý do gì để làm gì, việc ghi thực tế có bất kỳ vấn đề mạng nào, thì lệnh sẽ ngăn chặn vô thời hạn, vì vậy đó là một thông số tốt để đặt giá trị này. Nó được đo bằng mili giây và nó chỉ áp dụng cho các giá trị W lớn hơn 1. giá trị thời gian chờ là thời gian lệnh sẽ đợi trước khi trả về bất kỳ kết quả nào. Nếu điều này không được chỉ định và nếu vì bất kỳ lý do gì, việc ghi thực tế có bất kỳ sự cố mạng nào, thì lệnh sẽ chặn vô thời hạn, vì vậy, nên đặt giá trị này. Nó được đo bằng mili giây và nó chỉ áp dụng cho các giá trị w lớn hơn 1

Trong ví dụ sau, nếu chúng tôi có bộ sao 5 nút, chúng tôi sẽ yêu cầu phần lớn (tùy chọn W) của các nút (3) trả lời lại bằng một xác nhận viết thành công. phần lớn (tùy chọn w) của các nút (3) trả lời lại với xác nhận ghi thành công

Trong ví dụ trên, chúng tôi đang sử dụng lệnh Chèn Mongo Shell. Tham số đầu tiên là tài liệu sẽ được đưa vào bộ sưu tập sản phẩm, trong khi tham số thứ hai là mối quan tâm ghi chép. Các yêu cầu về mối quan tâm ghi cho cụm MongoDB thừa nhận rằng việc viết đã thành công trong phần lớn các nút mang dữ liệu và nói chung, hoạt động này không nên mất hơn 5 giây. bộ sưu tập sản phẩm, trong khi tham số thứ hai là mối quan tâm ghi. Mối quan tâm ghi yêu cầu cụm MongoDB xác nhận rằng thao tác ghi đã thành công ở phần lớn các nút mang dữ liệu và nhìn chung, thao tác này sẽ không mất quá 5 giây

Chia sẻ MongoDB

Cụm Sharded là gì?

Một cụm mảnh trong MongoDB là một tập hợp các bộ dữ liệu được phân phối trên nhiều mảnh (máy chủ) để đạt được khả năng mở rộng theo chiều ngang và hiệu quả tốt hơn trong các hoạt động đọc và ghi

Sharding rất hữu ích cho các bộ sưu tập có nhiều dữ liệu và tỷ lệ truy vấn cao

Dựa trên sơ đồ trên, Collection1 được phân chia, không giống với Collection2, không bị che khuất. Nếu chúng tôi giữ Bộ sưu tập1 trong một máy chủ, CPU của máy chủ đó có thể tăng đột biến vì nó sẽ không có khả năng cần thiết để đối phó với các yêu cầu mà nó nhận được. Tuy nhiên, việc thêm một Shard khác cho Collection1 giúp phân phối tải xuống bằng cách tăng hiệu quả tổng thể mà nó có thể nhận được.

Định cấu hình cụm Sharded cho phép một mảnh vỡ cũng được cấu hình dưới dạng bộ bản sao. Nói cách khác, cấu hình của nó là có tính khả dụng cao và khả năng mở rộng theo chiều ngang. Ngoài ra, một thành phần được gọi là Mongo được phát triển khi định cấu hình cụm từ bị che khuất. Mongos là một bộ truy vấn trực tuyến; . Ngoài định tuyến, nó cũng có thể xử lý cân bằng bằng cách tải xuống tất cả các hoạt động truy vấn và ghi vào các mảnh vỡ. mongos được triển khai khi định cấu hình cụm phân đoạn. Mongos là một bộ định tuyến truy vấn; . Ngoài việc định tuyến, nó cũng có thể xử lý cân bằng tải cho tất cả các hoạt động truy vấn và ghi vào các phân đoạn

Cuối cùng, một dịch vụ siêu dữ liệu có tên là Cấu hình máy chủ (ConfigSVR) cũng được khai thác. Nó chứa bất kỳ thông tin và cấu hình liên quan đến cụm Sharded. Thành phần này cũng lưu trữ vị trí và phạm vi của các khối dữ liệu trong các phần khác nhau, cũng như thông tin xác thực bao gồm tên người dùng, vai trò chơi và quyền cho các cơ sở dữ liệu và bộ sưu tập khác nhau. máy chủ cấu hình (configsvr) cũng được triển khai. Nó chứa bất kỳ thông tin và cấu hình nào liên quan đến cụm phân đoạn. Thành phần này cũng lưu trữ vị trí và phạm vi của các khối dữ liệu trong các phân đoạn khác nhau, cũng như thông tin xác thực bao gồm tên người dùng, vai trò và quyền đối với các cơ sở dữ liệu và bộ sưu tập khác nhau

Môi trường sản xuất

Lập kế hoạch phục hồi thảm họa và thời gian chết bằng không có nghĩa là có một bộ bản sao của cụm từ MongoDB trên một khu vực hoặc một số khu vực, tùy thuộc vào mức độ quan trọng của việc đánh giá rủi ro

Một bộ sao bao gồm quy trình Mongod chính và các quy trình cấp khác. Chúng tôi tuyên bố rằng tổng số các quy trình này là kỳ lạ để phần lớn được đảm bảo trong trường hợp Master thất bại và một bậc thầy mới cần được phân bổ. quy trình mongod và các quy trình thứ cấp khác. Chúng tôi khuyến nghị rằng tổng số các quy trình này là số lẻ để đảm bảo đa số trong trường hợp máy chủ bị lỗi và cần cấp phát một máy chủ mới

Sharding một cụm từ MongoDB cũng đang ở trên nền tảng của công việc phát triển khai thác một cụm từ sản xuất khi tải dữ liệu lên

Rõ ràng, việc thiết kế các mô hình dữ liệu của bạn, lưu trữ chúng một cách thích hợp trong các bộ sưu tập và việc xác định các mục đã được chỉnh sửa là rất cần thiết. Nhưng nếu bạn thực sự muốn tận hưởng sức mạnh của MongoDB, bạn cần phải có một kế hoạch liên quan đến việc tạo ra cụm từ của bạn

Làm cách nào để tìm tên MongoDB của tôi?

To have a số liệu thống kê về máy chủ mongoDB, hãy nhập lệnh db. stats() vào máy khách MongoDB. Điều này sẽ hiển thị tên cơ sở dữ liệu, số lượng thu thập và tài liệu trong cơ sở dữ liệu. gõ lệnh db. số liệu thống kê() trong ứng dụng khách MongoDB . Điều này sẽ hiển thị tên cơ sở dữ liệu, số lượng bộ sưu tập và tài liệu trong cơ sở dữ liệu.

Làm cách nào để thay đổi tên cụm từ trong MongoDB?

Bạn không thể đổi tên cụm từ nhưng bạn có thể phục hồi nó hoặc di chuyển nó sang một cái mới với tên mới