Hướng dẫn what is mongodb cluster name? - tên cụm mongodb là gì?

Trái ngược 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 mô theo 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 MongoDB, do đó tăng cường hiệu suất và độ tin cậy của cụm Mongodb .

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

Trong bối cảnh của MongoDB, cụm cụm là từ thường được sử dụng cho một tập hợp bản sao hoặc cụm bị che khuất. Một bộ bản sao là bản sao của một nhóm các máy chủ MongoDB chứa các bản sao của cùng một dữ liệu; Đây là một tài sản cơ bản để triển khai sản xuất vì nó đảm bảo tính khả dụng cao và dự phòng, là những tính năng quan trọng cần có trong trường hợp thất bại và thời gian bảo trì theo kế hoạch.replica set or a sharded cluster. A replica set is the replication of a group of MongoDB servers that hold copies of the same data; this is a fundamental property for production deployments as it ensures high availability and redundancy, which are crucial features to have in place in case of failovers and planned maintenance periods.

Một cụm mảnh vỡ cũ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 mô đọ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 quan 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. Để làm điều này, bạn sẽ cần 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 trên Thêm Thêm địa chỉ IP và thêm IP của bạn:if you prefer working with the command line, you can connect using the mongo shell. To do this, you’ll need to configure the firewall from the web portal to accept your IP. From the homepage, navigate to Security and then Network Access. Finally, click on “Add IP Address” and add your IP:

Sau đó, thay thế các 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://.nupbd.mongodb.net/" --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 triển khai MongoDB được tạo.

Tạo một cụm 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 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à triển khai cụm MongoDB với bộ bản sao. Tuy nhiên, nếu bạn cũng muốn bật Sharding, thì bạn phải bật riêng tính năng này và chỉ định số lượng mảnh vỡ có.replica set. However, if you also want to enable sharding, then you have to enable this feature separately and specify the number of shards to have.

Bộ bản sao MongoDB

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

Một bộ bản sao MongoDB đảm bảo sao chép được thực thi bằng cách cung cấp dự 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ộ bản sao, điều đó có nghĩa là tất cả dữ liệu sẽ có mặt trong chính xác một máy chủ. 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ộ bản sao được bật. Do đó, chúng ta có thể thấy ngay tầm quan trọng của việc có một bản sao được đặt để triển khai MongoDB.

Ngoài dung sai lỗi, các bộ bản sao cũng có thể cung cấp thêm khả năng hoạt động đọc 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ộ bản 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à song song xảy ra với các bộ bản sao thay vì phải đi qua một máy chủ chính.

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ộ bản 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 các bộ dữ liệu chính của nút chính đượ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 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:

Hướng dẫn what is mongodb cluster name? - tên cụm mongodb là gì?

Việc sao chép từ Oplog nút 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 đột nhiên không có sẵn, một cuộc bầu cử sẽ diễn ra để xác định nút chính mới. Trong kịch bản có hai nút phụ, một trong các nút thứ cấp sẽ trở thành nút chính:

Hướng dẫn what is mongodb cluster name? - tên cụm mongodb là gì?

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ử tập bản sao nhưng không sao chép oplog từ chính. Đ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 trọng tài, tức là, nó có thể trở thành một nút chính hoặc phụ, trong khi một chính có thể trở thành nút thứ cấp và ngược lại.

Sự thất bại của một nút chính không phải là lý do duy nhất một cuộc bầu cử tập bản sao có thể xảy ra. Các cuộc bầu cử tập bản sao có thể xảy ra vì những lý do khác để đáp ứng với 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 bảo trì bộ bản sao hoặc nếu bất kỳ nút thứ cấp nào bị mất Kết nối với nút chính trong một khoảng thời gian nhiều hơn khoảng thời gian chờ được định cấu hình ('10 giây' theo mặc định).

Đọc và ghi các hoạt động trong một bộ bản 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 có được bật một bộ bản sao hay liệu nó có chạy trên một triển khai máy chủ hay không.

Tuy nhiên, MongoDB cung cấp các hoạt động đọc và ghi bổ sung trên đầu các lệnh đầu vào và đầu ra tiêu chuẩn. Ứ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 định tuyến cụ thể đến các trường thứ hai cũng có thể được cấu hình; Điều này được gọi là tùy chọn đọc.

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 các 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ể cho độ trễ mạng ít nhất bất kể điều đó 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, nguy cơ 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ế độ ưu tiên đọc có thể được đặt thành ưu tiên chính hoặc ưu tiên thứ cấp. 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 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 đọc xảy ra trên một nút phi nguyên tắc, bạn phải đảm bảo rằng ứng dụng của bạn có thể dung nạp dữ liệu cũ.

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

Hướng dẫn what is mongodb cluster name? - tên cụm mongodb là gì?

Giá trị W có thể được đặt thành 0, có nghĩa là không cần xác nhận ghi. 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ố lượng nút cộng với chính cần xác nhận. Ví dụ, 4 có nghĩa là 3 thứ hai cần báo hiệu cũng như nút chính.w value can be set to 0, meaning that no write acknowledgement is needed. 1 is the default and it means that it only requires the primary node to acknowledge the write, while any number greater than 1 corresponds to the number of nodes plus the primary that need to acknowledge. For example, 4 means 3 secondaries need to signal as well as the primary node.

Giá trị J tương ứng với việc MongoDB có được viết trên đĩa trong một khu vực đặc biệt 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 tắt máy cứng và nó được bật theo mặc định.j value corresponds to whether MongoDB has been written on disk in a special area called the journal. This is used from MongoDB for recovery purposes in case of a hard shutdown, and it is enabled by default.

Cuối cùng, giá trị Wtimeout là thời gian 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 chỉ định và nếu vì bất kỳ lý do gì, việc ghi thực tế có bất kỳ vấn đề mạng nào, thì lệnh sẽ chặn vô thời hạn, vì vậy đó là một thông lệ 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.wtimeout value is the time the command should wait before returning any result. If this is not specified and if for any reason the actual write has any network issues, then the command would block indefinitely, so it is a good practice to set this value. It is measured in milliseconds and it is only applicable for w values greater than 1.

Trong ví dụ sau, nếu chúng tôi có bộ bản 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:majority (w option) of the nodes (3) replies back with a successful write acknowledgment:

Hướng dẫn what is mongodb cluster name? - tên cụm mongodb là gì?

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 chèn vào bộ sưu tập sản phẩm, trong khi tham số thứ hai là mối quan tâm ghi. 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.products collection, while the second parameter is the write concern. The write concern requests for the MongoDB cluster to acknowledge that the write has succeeded in the majority of data bearing nodes, and overall, this operation should not take more than 5 seconds.

MongoDB Sharding

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 ngang và hiệu suất tốt hơn trong các hoạt động đọc và ghi.

Hướng dẫn what is mongodb cluster name? - tên cụm mongodb là gì?

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 như Collection2, không bị che khuất. Nếu chúng tôi giữ Collection1 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 bằng cách tăng công suất 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, nó được cấu hình 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 gọi là Mongo được triển khai khi định cấu hình cụm bị che khuất. Mongos là một bộ định tuyến truy vấn; Nó hoạt động như một trung gian giữa máy khách và máy chủ, hoặc mảnh vỡ mà dữ liệu nằm ở. 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 mảnh vỡ.mongos is deployed when configuring a sharded cluster. Mongos is a query router; it acts as an intermediary between the client and the server, or the shard that the data resides in. Apart from routing, it can also handle load balancing for all query and write operations to the shards.

Cuối cùng, một dịch vụ siêu dữ liệu có tên là Máy chủ Config (ConfigSVR) cũng được triển khai. 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 mảnh 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 cho các cơ sở dữ liệu và bộ sưu tập khác nhau.config servers (configsvr) is also deployed. It contains any information and configurations relating to the sharded cluster. This component also stores the location and the ranges of the data chunks in the different shards, as well as authentication information including usernames, roles, and permissions to different databases and collections.

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 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ộ bản sao bao gồm quy trình Mongod chính 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à 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ổ.mongod process and other secondary processes. It is recommended that the total number of these processes is odd so that majority is ensured in the case that the master fails and a new master needs to be allocated.

Sharding một cụm MongoDB cũng đang ở nền tảng của việc triển khai một cụm sản xuất với tải dữ liệu khổng lồ.

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 chỉ mục được sửa là rất cần thiết. Nhưng nếu bạn thực sự muốn tận dụ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 của bạn.

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

Để có được 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.type the command db. stats() in MongoDB client. This will show the database name, number of collection and documents in the database.

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

Bạn không thể đổi tên cụm nhưng bạn có thể khôi phục nó hoặc di chuyển nó sang một cái mới với tên mới. but you can restore it or migrate it to a new one with the new name.

Cơ sở dữ liệu cụm là gì?

Cụm cơ sở dữ liệu là một tập hợp các cơ sở dữ liệu được quản lý bởi một trường hợp duy nhất của máy chủ cơ sở dữ liệu đang chạy.Sau khi khởi tạo, cụm cơ sở dữ liệu sẽ chứa cơ sở dữ liệu có tên Postgres, có nghĩa là cơ sở dữ liệu mặc định để sử dụng bởi các tiện ích, người dùng và ứng dụng bên thứ ba.a collection of databases that is managed by a single instance of a running database server. After initialization, a database cluster will contain a database named postgres , which is meant as a default database for use by utilities, users and third party applications.

Làm cách nào để kết nối với cụm MongoDB?

Bạn sẽ cần lấy chuỗi kết nối của cụm từ Atlas để kết nối với cụm bằng trình điều khiển pymongo ...
Nhấp vào Kết nối.....
Nhấp vào Chọn phương thức kết nối ..
Nhấp vào Kết nối ứng dụng của bạn.....
Chọn Python và phiên bản trình điều khiển của bạn.....
Sao chép chuỗi kết nối được cung cấp ..
Định cấu hình chuỗi kết nối được cung cấp ..