Độ trễ sao chép mongodb

Phương thức bổ sung sẽ thêm một thành viên vào nhóm sao được chỉ định. Chúng tôi được yêu cầu kết nối với tập hợp chính của tập hợp bản sao cho phương pháp này. Kết nối với trình bao sẽ bị chấm dứt nếu phương thức sẽ kích hoạt một cuộc bầu cử sơ bộ. Ví dụ – nếu chúng tôi cố gắng thêm một thành viên mới có mức độ ưu tiên cao hơn thành viên chính. Lỗi sẽ bị phản ánh bởi trình bao mongo ngay cả khi thao tác thành công

Ví dụ

Trong ví dụ sau, chúng tôi sẽ thêm một thành viên phụ với phiếu bầu mặc định

rs.add( { host: "mongodbd4.example.net:27017" } )  

Tên máy chủ

rs.add( "mongodbd4.example.net:27017" )  

#2. rs. addArb(máy chủ)

Chúng tôi có thể thêm một máy chủ mới vào một bản sao hiện có được đặt tại máy chủ lưu trữ được chỉ định

Ví dụ

mongod --bind_ip localhost,My-Example-  

Nếu bạn muốn kết nối với phiên bản này, tên máy chủ hoặc địa chỉ IP liên kết 198. 52. 100. 2 of it must be only by the client from xa

mongo --host My-Example-  
mongo --host 198.52.100.2  

#3. rs. conf()

Phương thức conf được sử dụng để lấy một tài liệu có chứa cấu hình của sao tập tin hiện tại

Rs. conf() end config command replSetGetConfig

Ví dụ

Lệnh sau hiển thị tài liệu cấu hình của một tập hợp bản sao bao gồm tập hợp con của các cài đặt này

{  
  _id: ,  
  version: ,  
  protocolVersion: ,  
  writeConcernMajorityJournalDefault: ,  
  configsvr: ,  
  members: [  
    {  
      _id: ,  
      host: ,  
      arbiterOnly: ,  
      buildIndexes: ,  
      hidden: ,  
      priority: ,  
      tags: ,  
      slaveDelay: ,  
      votes:   
                        }, ], settings: {  
    chainingAllowed : ,  
    heartbeatIntervalMillis : ,  
    heartbeatTimeoutSecs: ,  
    electionTimeoutMillis : ,  
    catchUpTimeoutMillis : ,  
    getLastErrorModes : ,  
    getLastErrorDefaults : ,  
    replicaSetId:   
  }  
}  

#4. rs. bắt đầu (cấu hình)

Phương thức khởi tạo sao chép tập tin sao chép. Phương pháp này có thể coi một tài liệu chứa cấu hình rs. khởi tạo () của một bản sao tập hợp, nhưng đó là tùy chọn

Ví dụ

Ví dụ sau đây khởi tạo một tập hợp bản sao mới với ba thành viên khác nhau

{  
   _id: "JTPReplSet",  
   version: 1,  
   members: [  
      { _id: 0, host : "mongodb0.example.net:27017" },  
      { _id: 1, host : "mongodb1.example.net:27017" },  
      { _id: 2, host : "mongodb2.example.net:27017" }  
   ]  
}  

#5. rs. cấu hình lại (cấu hình, lực lượng)

Như tên cho thấy, phương pháp được sử dụng để cấu hình lại một bản sao tập hợp hiện có. Nó sẽ ghi đè lên tất cả cấu hình bộ sao hiện có. Chúng ta phải kết nối với bộ sao chính để chạy phương thức này

Trong tổng quan về MongoDB nhỏ này, chúng tôi đang trải nghiệm qua một số khái niệm về MongoDB quan trọng liên quan đến các bộ bản sao. Sau một số trình bày khái niệm, chúng ta sẽ thấy một số ví dụ trong hành động bằng cách sử dụng Docker-Compose. Chúng tôi sẽ sử dụng nguồn thông tin chính của tài liệu chính thức MongoDB có thể được tìm thấy trong phần tham khảo. Không có gì đến giới hạn, hãy bắt đầu

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

  • Giới thiệu
  • Bộ bản sao là gì?
  • Tại sao bạn cần một bộ sao?
  • Làm thế nào để sao chép hoạt động trong MongoDB?
  • Một tài nguyên quan trọng trong bộ sao MongoDB là gì?
  • Các chiến lược để khai thác bộ sao của bạn
  • Sao chép vs Sharding
  • Nhận thực tế
  • Kết luận
  • Giới thiệu người

Câu chuyện này được tổ chức như sau

  • Bộ bản sao là gì?
  • Tại sao bạn cần một bộ sao?
  • oplog
  • Làm thế nào để sao chép hoạt động trong MongoDB?
  • Một tài nguyên quan trọng trong bộ sao MongoDB là gì?
  • Bảo vệ
  • Các chiến lược để khai thác bộ sao của bạn
  • Sao chép vs Sharding
  • Nhận thực tế
  • THƯỜNG
  • Kết luận

Bộ bản sao là gì?

Tại sao bạn cần một bộ sao?

Tại sao bạn cần một bộ sao?

oplog

  • Làm thế nào để sao chép hoạt động trong MongoDB?
  • Một tài nguyên quan trọng trong bộ sao MongoDB là gì?

Bảo vệ

oplog

Làm thế nào để sao chép hoạt động trong MongoDB?

Một tài nguyên quan trọng trong bộ sao MongoDB là gì?

Làm thế nào để sao chép hoạt động trong MongoDB?

Một tài nguyên quan trọng trong bộ sao MongoDB là gì?

Bảo vệ

Một tài nguyên quan trọng trong bộ sao MongoDB là gì?

Bảo vệ

Bảo vệ

Bạn có thể định cấu hình bản sao của mình để sử dụng ủy quyền, trong trường hợp này, tất cả các giao tiếp được trao đổi bởi các trường hợp khác nhau sẽ được mã hóa. Trong một số trường hợp, bạn cũng có thể yêu cầu cấu hình bảo mật giữa các thành viên bộ bản sao của bạn

Các chiến lược để khai thác bộ sao của bạn

Đối với môi trường sản xuất, cách tiếp cận được đề xuất bởi tài liệu MongoDB là 3 sao thành viên. Mặc dù MongoDB khuyên bạn nên chạy các kịch bản khác nhau mà bạn đã chuẩn bị cho hệ thống của mình để chống lại chiến lược hiện tại của mình. Nếu bạn muốn khai thác ở các khu vực khác nhau, điều này sẽ ảnh hưởng đến chiến lược MongoDB của bạn và bạn có thể muốn thay thế vì 3 thành viên, có thể có một bộ phận tư vấn sẽ ở một khu vực khác chỉ sao lưu . Mặt khác, nếu bạn có yêu cầu sử dụng sai lỗi cao có tối thiểu 5 hoặc 6 thành viên cũng có thể được xem xét

Điểm chốt là bạn cần phải suy nghĩ về điều này một cách kỹ lưỡng. Điều đáng lưu ý là việc thay đổi cấu hình có vẻ khá đơn giản, vì vậy, hãy xem xét bạn có thời gian để thử nghiệm xem bạn có ổn định không bằng cách biến đây thành một quá trình lặp đi lặp lại (trong khi phát triển)

Sao chép vs Sharding

Chủ đề này sẽ tạo đủ thông tin để trình bày trong một câu chuyện hoàn toàn khác, nhưng điều quan trọng là đôi khi hiểu khái niệm này xảy ra với nhau trong cùng một bối cảnh. Bản sao đã đạt được, như đã được giải thích trong câu chuyện này, bằng cách định cấu hình các nút mới và cung cấp vai trò xác định vai trò cho mỗi người trong số họ. Giả sử điều này, hãy để Lôi nghĩ về kịch bản sau đây, điều gì xảy ra nếu bạn đạt đến giới hạn hiệu suất (ghi và đọc) trên nút chính của bạn, bạn có thể làm gì để tăng nó? . Vì vậy, thay vì có một bộ dữ liệu đầy đủ trên mỗi nút, bạn sẽ có một đoạn của nó. Điều này có hiệu lực hơn trong nhiều trường hợp

Nhận thực tế

Chúng tôi sẽ sử dụng phần này để trình bày các tệp khác nhau cần thiết để chạy một ví dụ đơn giản, hãy chắc chắn làm theo hướng dẫn và đặc biệt lưu ý đến nơi các tệp khác nhau nên được đặt cho Docker-Compose

Để đạt được kiến ​​trúc nút 3 PSS đơn giản (cấp hai giây), bạn có thể sử dụng Docker bản sáng tác như sau

Về cơ bản với cấu hình này, chúng tôi sẽ đảm bảo rằng Mongo1 sẽ luôn là nút chính của chúng tôi, để tất cả các nút giao tiếp với nhau, chúng tôi đã sử dụng một mạng, được gọi là mạng Mongo mạng. Chúng tôi đặc biệt tải tất cả các lệnh trong thư mục của nó. mongo1 sẽ luôn là nút chính của chúng tôi, để tất cả các nút giao tiếp với nhau, chúng tôi đã sử dụng một mạng, được gọi là “mạng mongo”. Chúng tôi đặc biệt tải tất cả các tập lệnh trong thư mục của nó

Như đã đề cập trong suốt câu chuyện này để bạn luôn luôn có cùng một chính, bạn sẽ cần chọn những trường hợp có mức độ ưu tiên cao hơn, điều này có thể đạt được bằng cách sử dụng một trường có cùng tên là ưu tiên . ưu tiên”, để áp dụng những thay đổi này, chúng tôi sẽ sử dụng một tập lệnh sẽ được gắn trong bộ chứa mongo1 (tất cả các tập lệnh này phải được đặt trong một thư mục mới có tên là “tập lệnh”)

Sau khi xem các lệnh, bạn có thể nhận thấy rằng có một số sự cố chậm được tuyên bố, điều này được sử dụng để dành thời gian cho các container bắt đầu và quan trọng nhất là để cho cuộc bầu cử xảy ra.

Tiếp theo và sẵn sàng chấp nhận và tạo cơ sở dữ liệu và người dùng mới của bạn, chúng tôi sử dụng một tệp JavaScript nhỏ có thể được mở rộng để phù hợp với nhu cầu của bạn (đồng thời được thêm vào bên trong . scripts” thư mục)

Cuối cùng và để kích hoạt ví dụ này, chúng ta có thể sử dụng một lệnh bash nhỏ để dán mọi thứ lại với nhau

Bản ghi này thực hiện nhiều hơn một chút so với việc chỉ chạy tệp docker-compose, nó cũng bắt đầu bằng cách làm sạch môi trường Docker của bạn và kết thúc bằng cách thực thi tệp lệnh mà trước đây chúng tôi đã gắn vào Mongo1. mongo1

Lưu ý. Sau một số cuộc thảo luận tranh luận trong các bình luận, hãy lưu ý rằng việc thực hiện dòng 6 và dòng 7 sẽ làm sạch môi trường Docker của bạn, cá nhân tôi đã sử dụng lệnh này để giúp tôi lặp lại các thử nghiệm . Theo một số cuộc thảo luận trong các nhận xét, hãy lưu ý rằng việc thực thi dòng 6 và dòng 7 sẽ làm sạch môi trường docker của bạn, cá nhân tôi đã sử dụng tập lệnh này để giúp tôi lặp lại các thử nghiệm khác nhau mà tôi đã thực hiện, trong trường hợp nó không phù hợp với trường hợp sử dụng của bạn

THƯỜNG

Hãy để tôi tưởng tượng rằng bạn thay vì có kiến ​​trúc 3 nút, chỉ muốn có một nút hoạt động như một bộ bản sao, điều này có thể đạt được trong một docker đơn giản như sau

Kết luận

Trong câu chuyện này, một cái nhìn tổng quan nhanh về một số khái niệm quan trọng của MongoDB đã được trình bày, và một số ý tưởng về cách chọn một kiến ​​trúc và những yếu tố cần xem xét. Trong phần cuối cùng, hai ví dụ thực tế cho thấy bộ sao chép là gì và cách cấu hình chúng. Để biết thêm thông tin về chiều rộng, hãy nhớ kiểm tra các tài liệu chính thức của MongoDB

Cảm ơn vì đã dành khoảng thời gian quý báu của bạn để đọc câu chuyện này, tôi hy vọng nó sẽ giúp bạn theo một cách nào đó. Bất kỳ phản hồi nào, bạn chắc chắn sẽ sử dụng các ý kiến ​​​​dưới đây. Nếu bạn thích câu chuyện này lãng tay và nếu bạn muốn tiếp tục theo dõi câu chuyện của tôi, hãy tự động theo dõi

Giới thiệu người

https. // zgadzaj. com/Development/docker/docker-compose/turning-standalone-mongodb-server-into-a-replica-set-with-docker-compose