MongoDBの高可用性クラスタ複製セットは少し実用的な教室を詳細(multishore研究所)

MongoDBのレプリケーションセット

  1. データベース

    • リレーショナル:MySQLのは、Oracle、SQL Serverの、DB2など
    • 非リレーショナル:MongoDBの、Redisの、HBaseの、など
  2. NOSQLについて

    • NoSQLのSQL =だけでなく、
    • (SQLクエリを構造化された)SQLが構造化なしストレージ要件を意味していない使用しない高性能に適している、その後、無制約アーキテクチャより柔軟性があります。
    • NoSQLのは、クエリ言語としてSQLを使用していません
    • データストレージモードは、固定テーブル(構造化されていないと予測できないデータ)を必要としないかもしれません
    • 水平方向のスケーラビリティ機能
    • 最終的な一貫性(CAP定理)
  3. NoSQLの利点

    • 高いスケーラビリティ、分散コンピューティング、複雑な関係、低コスト、柔軟なアーキテクチャ、半構造化データ
  4. MongoDBは何ですか?

    • MongoDBは、分散ファイル・ストレージベースのデータベースです。C ++書き言葉。WEBアプリケーションのためのスケーラブルで高性能データ・ストレージ・ソリューションを提供するために設計されています。
    • MongoDBは、特にビッグデータ処理で比較的良好で、データ収集のために使用されるフリードキュメント指向データベース、および分散処理(マップ/削減)です。
    • 世界的なデータベースのランク付けします。https://db-engines.com/en/ranking
  5. MongoDBの特徴

    • 柔軟で動的なドキュメントモデル

    • ハイアベイラビリティ

      自動レプリケーションとフェイルオーバー

      50人のメンバーにサポートをオフにすることなくメンテナンスをローリングマルチデータセンターのサポート

    • 水平展開

      このアプローチは、サーバーの数を増やすことによって、システムの拡張を参照して、現在のアーキテクチャの形で主流となっています。このフレームワークでは、シングルサーバ構成ではなく、非常に高い、非常に低コストのPC、比較的低いがあったかもしれない、各マシンは、システムのサブセットで、単一のサーバーよりも、クラスタ・マシン内のすべてのサーバーを運びます負荷容量のより強力かつ効率的なシステムを提供します。

  6. はじめにレプリケーションセット

    MongoDBは、伝統的なマスタースレーブ(マスタ/スレーブ)のセットは、進化したコピーのグループによって所有されているデータの同じセットクラスタその例のmongod。

    :主要構造から分離された読み取りと書き込み
    操作は(読み取り)読み取りと書き込みの分離の基本的な原理は、データベースからのクエリを処理している間に、メインのトランザクションデータベース処理を追加してみましょう変更、(書き込み)動作を削除することです。SQLには、例えば、メインライブラリーは、データの読み取り、書き込みを担当しています。読書ライブラリは、データを読み取るための唯一の責任です。すべてのライブラリは、書き込み動作、読むためにライブラリに同期更新しています。ライブラリは、データの同期やライブラリの同期を読んで、複数のメインライブラリのログの方法により、複数持つことができます読んで、ライブラリに書かれました。

    レプリケーションセットは、複数のデータノードとノードの選挙が含まれています。データノードのみプライマリノード(プライマリ)、他のノードからの(セカンダリ)。マスタノードの場合、すべての要求が来て操作からマスターノードに同一のデータを確実にするために、マスタノードを受信し、その上に行われます。ノードが全く書かれていない、唯一のマスターノードが書き込み操作を受け取ることができることに留意すべきです。複製冗長データセットは、信頼性を向上させるためにデータをコピーすることによって達成されます。

    IMG

      図から分かるように、すべてのクライアントアプリケーションを介して、現在のデータベースからプライマリ・ノードに向けられた書き込み要求を、運転者のMongoDBデータベースに向けられる読み取りおよび書き込み要求は、書き込み要求が終了し、それが主ノードに記録されoplog(記録動作を読み出すことなく書き込み動作を記録するために)、マスターノードによってスレーブノードoplogは、コピー操作を実行します。デフォルトでは、読み取り要求は、プライマリノードに向けられています。MongoDBの複製セットは、構成せずに駆動すると、現在の日付がメインライブラリにわずかな遅延指しますた起因メインノードに対してデータノードにおける理由ブラシプレート効率とネットワークディスク結果に非同期複製形態は、あるのでデータ。勿論、エージング時間があまり厳しく設定することができる場合、データは、特定のノード点からの読み出しと書き込みの分離操作を読み取ります。

  7. 基本的なフレームワークのセットをコピーします。

    • 次のように3は、複製のmongodセットアーキテクチャが含まれています

    IMG

    • プライマリサーバーに障害が発生した場合、それはなります:

    IMG

    • あなたは、オプションのアービタを追加する場合:

    IMG

    • プライマリサーバで障害が発生した場合:

    IMG

  8. MongoDBのレプリケーションセットの役割タイプ

    1、標準ノード:予備選挙への参加、とき自体ダウンしているか、サービスを停止するには、自動的にプライマリを行います

    2は、パッシブノード:秒だけの選挙に参加しないとなっては、選挙に参加することはできませんパッシブノードに設定されています

    3、調停ノード:責任の投票は、規格が同じノードでないことを保証するために、票の数を、データを保存しません

  9. 環境情報

    系统:centos6.8
    mongo的版本:mongodb-linux-x86_64-rhel62-4.0.6.tgz
    机器环境:192.168.57.201、192.168.57.202、192.168.57.203
  10. インストールMongoDBの

    #上传mongodb软件到3台机器
    #解压缩
    tar xzvf mongodb-linux-x86_64-rhel62-4.0.6.tgz 
  11. MongoDBは(mongo.conf)プロファイルを作成します

    # 配置文件保存位置
    /opt/mongo/mongo.conf
    
    fork=true
    dbpath=/opt/mongo/data/db
    port=27017
    bind_ip=0.0.0.0
    logpath=/opt/mongo/logs/mongodb.log
    logappend=true
    # 复制集的名字(自己定义)
    replSet=yidian_repl
    smallfiles=true
    
    # 3台机器分别创建配置文件和对应的数据、日志目录
  12. Mongoのサービスを開始し、複製セットを設定

    # 3台都启动
    ./mongod --config /opt/mongo/mongo.conf
    
    #查看是否启动成功
    netstat -ntlp
    
    #进入mongo客户端
    ./mongo
    
    # 配置复制集
    var rsconf = {
        _id:'yidian_repl', //这里的_id要与配置文件中指定的服务所属的复制集相同
        members:  //复制集成员
        [
            {
            _id:1, //成员的id
            host:'192.168.57.201:27017' //成员所属节点的ip以及该成员服务启动时所占的端口
            },
            {
            _id:2,
            host:'192.168.57.202:27017'
             },
             {
             _id:3,
             host:'192.168.57.203:27017'
              }
            ]
    }
    
    #初始化配置(加载rsconf配置文件)
    rs.initiate(rsconf);
    
    #状态查看
    rs.status(); 
  13. テスト

    # 添加数据
    db.movies.insert([ { "title" : "fzzlm", "year" : 1975, "imdb_rating" : 8.1 },
       { "title" : "jqdz", "year" : 1989, "imdb_rating" : 7.6 }] );
    
    # 查看数据
    db.movies.find().pretty();
    
    # 允许从节点查询
    rs.slaveOk();
    
    # ADD
    rs.add("ip:port");
    # remove
    rs.remove("ip:port");
    # config 查看配置信息
    rs.config();
    
    # 201主节点 kill,进行测试
    [root@test201 bin]# netstat -ntlp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
    tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN      6159/./mongod       
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2196/sshd           
    tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1910/cupsd          
    tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      4864/sshd           
    tcp        0      0 :::3306                     :::*                        LISTEN      2498/mysqld         
    tcp        0      0 :::22                       :::*                        LISTEN      2196/sshd           
    tcp        0      0 ::1:631                     :::*                        LISTEN      1910/cupsd          
    tcp        0      0 ::1:6010                    :::*                        LISTEN      4864/sshd           
    [root@test201 bin]# kill -9 6159
    

    ビデオチュートリアル:www.yidiankt.com
    QQグループディスカッショングループ:984 370 849
    リトル公共教室号
    国民の関心の数-コア知識[JAVA]に自由にアクセス!

ここに画像を挿入説明

おすすめ

転載: www.cnblogs.com/yidiankt/p/11458152.html