Bộ bản sao mongodb psa

Một bộ bản sao (một bộ bản sao) là một nhóm các thể hiện (ví dụ)

root:~# docker network create my-mongo-cluster
9, các thể hiện này lưu trữ bộ dữ liệu (bộ dữ liệu) giống nhau

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

  • Bộ bản sao Mongo
  • Chạy bản sao mongo được đặt trên Docker
  • Một điều nữa (@@)

  • Trong môi trường sản phẩm có tính dự phòng và tính sẵn sàng cao (dư thừa và khả dụng cao) mà mongo replica set cung cấp là hết sức cần thiết. Không giống như khi chúng ta chạy thử với môi trường

    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    0 hoặc
    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    1 thì chỉ cần một
    root:~# docker network create my-mongo-cluster
    
    9 chạy là đủ

  • Một bộ bản sao mongo sẽ chứa các nút mang dữ liệu (

    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    3) và có thể có một nút trọng tài (
    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    4), riêng
    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    4 không mang dữ liệu cho nhiệm vụ duy nhất của nó dành cho bình bầu

  • Trong số các

    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    3 có duy nhất một nút
    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    7 có quyền ghi dữ liệu. Trong quá trình ghi dữ liệu chính của nút này, ghi lại toàn bộ bộ thay đổi dữ liệu của nó trong nhật ký hoạt động hoặc còn gọi oplog

  • Trong

    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    3 bên ngoài
    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    7 sẽ còn lại các nút
    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    10, các
    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    11 này sao chép
    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    12 của chính và thao tác trên bộ dữ liệu của mình, đó là cách các nút lưu trữ bộ dữ liệu giống nhau

    Bộ bản sao mongodb psa

  • Chuyển đổi dự phòng tự động. is when

    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    7 node down. Các
    root:~# docker network ls | grep my
    d4b0ed47349c        my-mongo-cluster    bridge              local
    
    11 còn lại sẽ bình bầu để một nút lên làm chính. Chúng ta sẽ không thể ghi dữ liệu cho đến khi quá trình này hoàn tất. Bộ bản sao có thể tiếp tục đọc dữ liệu của máy chủ nếu được cấu hình chạy trên phụ khi chính ngoại tuyến

  • Viết quan tâm. Nút mô tả số cần xác nhận việc ghi dữ liệu hoàn tất trước khi việc ghi dữ liệu được thông báo lại phía máy khách là thành công ( mặc định 1)

  • Hoạt động đọc (Đánh đổi). Có tất cả 5 tùy chọn cho việc đọc dữ liệu và đây là một sự thay đổi mà chúng ta nên xem xét để có cấu hình phù hợp với ứng dụng của mình nhất

    • root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      7. Mặc định luôn là đọc dữ liệu từ nút
      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      7. Giao dịch nhiều tài liệu giao dịch thao tác trên nhiều bản ghi có chứa thao tác đọc phải sử dụng đọc từ chính. Các thao tác trong một giao dịch cần được thực hiện trên cùng một nút. (Giao dịch vừa có thao tác đọc, ghi cần thao tác trên cùng nút B. Cannot read on node B, write on node C)

    • root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      17. Thông thường sẽ đọc từ nút chính nhưng nếu ngoại tuyến chính thì có thể đọc từ
      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      11

    • root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      10. Luôn đọc từ các nút phụ

    • root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      10. Mặc định sẽ đọc từ nút phụ nhưng nếu không có nút nào khả dụng thì sẽ đọc từ nút chính

    • root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      11. Sẽ đọc từ nút gần nó nhất. Trong mongo replica set. Các nút sẽ được lưu trữ trên các Trung tâm dữ liệu khác nhau (theo thiết kế) thậm chí cả các khu vực địa lý (châu Âu, châu Á). Tùy chọn này sẽ cho phép khách hàng lấy dữ liệu từ nút mà nó kết nối mạng nhanh nhất

  • Nhận xét (quan điểm cá nhân)

    • Chỉ đặt chỉ đọc chính có thể tăng tải trên nút chính (vừa đọc vừa ghi). If original down is not only not write data at this job read data also now not done ( for to when the primary new up)

    • root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      17. Vẫn là tăng tải trên chính ( vừa đọc vừa ghi), giải quyết được khi hạ cấp chính ( sẽ chuyển qua đọc từ phụ)

    • If read from secondaries down load for primmay node ( at this only need to write), tuy nhiên có thể xảy ra trường hợp dữ liệu chưa được cập nhật. (dữ liệu đã thay đổi trên chính nhưng chưa cập nhật trên phụ)

  • Chạy bản sao mongo được đặt trên Docker

    • Phần này mình sẽ chạy thử 1 replica set đơn giản trên docker

    • Dĩ nhiên trên PC của mình đã cài đặt docker

      Kiểm tra đã có hình ảnh của
      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      13 ( như bên dưới phiên bản mongo mới nhất còn sản phẩm chúng ta sẽ chỉ rõ phiên bản nào (cung) ).
      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      5
    • Tạo mạng bằng lệnh

      root:~# docker network create my-mongo-cluster
      
    • Chắc chắn chúng ta đã có

      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
    • Chúng ta bắt đầu, cùng chạy

      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      14 đầu tiên

      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      1
      • root:~# docker network ls | grep my
        d4b0ed47349c        my-mongo-cluster    bridge              local
        
        15. Bắt đầu một vùng chứa từ một hình ảnh

      • root:~# docker network ls | grep my
        d4b0ed47349c        my-mongo-cluster    bridge              local
        
        16. set name for the container first this is.
        root:~# docker network ls | grep my
        d4b0ed47349c        my-mongo-cluster    bridge              local
        
        14

      • root:~# docker network ls | grep my
        d4b0ed47349c        my-mongo-cluster    bridge              local
        
        18. thêm vùng chứa này vào mạng
        root:~# docker network ls | grep my
        d4b0ed47349c        my-mongo-cluster    bridge              local
        
        19

      • root:~# docker network ls | grep my
        d4b0ed47349c        my-mongo-cluster    bridge              local
        
        13. file image to run the container

      • root:~# docker network create my-mongo-cluster
        
        61. tham gia mongo1 vào replSet có tên
        root:~# docker network create my-mongo-cluster
        
        62

    • Được. Giờ con thứ 2 và thứ 3 sẽ được chạy (tại đây mình chạy trên 3 cửa sổ terminal khác nhau)

      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      1
    • Sau khi chạy chúng ta có thể thấy log thông báo chưa cấu hình replSet

      root:~# docker network create my-mongo-cluster
      
      6
    • Cùng kiểm tra ip các container này đã có (nếu muốn xem toàn bộ thông tin mạng thì bỏ cái grep thôi

      ).
      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      0
    • Ok thấy ip rồi connect vào rồi setup replSet thoai

      ( thiết bị đầu cuối bên dưới đang kết nối với mongo1 theo IP như hiển thị ở trên)
      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      1
    • Add cấu hình cho replica set

      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      2
    • ReplSet part is start replSet thôi. Vẫn đang trên con mongo1 nhé. Sau khi bắt đầu thay thế, nó sẽ chuyển sang trạng thái Thứ cấp và đợi 1 lát nó sẽ trở thành Chính như bên dưới

      root:~# docker network ls | grep my
      d4b0ed47349c        my-mongo-cluster    bridge              local
      
      3
    • Phần dưới đây lần với con mongo2 và mongo3

      root:~# docker network create my-mongo-cluster
      
      0
    • Có thể sẽ có câu hỏi tại sao phần này không thấy cổng ra như 1 số hướng dẫn (?)

      root:~# docker network create my-mongo-cluster
      
      63. Mình nghĩ nếu hiểu mô hình khai triển bạn sẽ thấy việc làm port hơi thừa

    Một điều nữa (@@)

    • Phần trên đã chạy thành công replica set nhưng nếu gom lại 1 file docker-compose thì sẽ nhanh hơn

    • Ghi chú

      root:~# docker network create my-mongo-cluster
      
      1
    • Mình xóa hết các container trước đó đã tạo đi. Trước

      root:~# docker network create my-mongo-cluster
      
      2
    • Sau

      root:~# docker network create my-mongo-cluster
      
      3
    • Mạng được tạo ở trên vẫn còn nhé

      root:~# docker network create my-mongo-cluster
      
      4
    • Tệp

      root:~# docker network create my-mongo-cluster
      
      64 như bên dưới

      root:~# docker network create my-mongo-cluster
      
      5
    • Time cd into the directory contains file

      root:~# docker network create my-mongo-cluster
      
      65 run command.
      root:~# docker network create my-mongo-cluster
      
      66 lên thôi nếu bị như dưới là không có quyền nhé.
      root:~# docker network create my-mongo-cluster
      
      67 lên

      root:~# docker network create my-mongo-cluster
      
      6
    • Chúng ta sẽ có log ntn

      root:~# docker network create my-mongo-cluster
      
      7
    • Kiểm tra lại các container đã chạy

      root:~# docker network create my-mongo-cluster
      
      8
    • Kiểm tra lại IP và chạy các lệnh cấu hình như phần trên là chúng ta sẽ có bộ thay thế cục bộ để kiểm tra. Điểm lợi của docker-compose is when running the

      root:~# docker network create my-mongo-cluster
      
      68 tự động các container được tạo bởi
      root:~# docker network create my-mongo-cluster
      
      66 cũng sẽ bị xóa luôn. Gom các cấu hình vào trong tập tin. yml luôn thay thế chính xác hơn là chạy lệnh thiết bị đầu cuối như phần trên

    p/s

    • Phần trên chỉ là ghi chú lại phần tìm hiểu của mình về bản sao mongo được đặt trên docker và thử chạy nó với docker-compose. Còn tồn tại nhiều vấn đề cần phải thực hiện thêm trước khi chạy sản phẩm

      • Bảo mật mạng với docker (chỉ các máy chủ mới có thể truy cập vào các bản sao của mongo)

      • Trình soạn thảo tệp docker nên thêm 1 bước chạy tự cấu hình - phần trên vẫn đang làm bằng tay( cái này đã được nhìn thấy trên mạng có - nhưng chưa thử

        )
      • Định làm ứng dụng nodejs nhỏ kiểm tra khi chính xuống và vẫn đọc ghi được sau khi 1 phụ lên. (có thể bổ sung sau)