<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # raft ## quorum模型 ![](https://box.kancloud.cn/d61fb8cb218e14bec42485fee928a9c6_1720x645.png) ## 日志格式 ![](https://box.kancloud.cn/ebe4c8536b02f281d9f7ce74d4126698_984x754.png) ## raft日志概念 * replication: 日志在leader生成,向follower復制,達到各個節點的日志序列最終一致 * term: 任期,重新選舉產生的leader,其term單調遞增 * log index: 日志行在日志序列的下標 ## 交互協議 * 通用的http+json協議,性能低效 * sdk內置GRPC協議,性能高效 ## 重要特性 * 底層存儲是按key有序排列,可以順序遍歷 * 因為key有序排列,可以順序遍歷 * 支持復雜事務,提供類型if...then...else的事務能力 * 基于租約機制實現key的ttl過期 存儲引擎是按key有序排列 `/config/database` `/feature-flags/verbost-logging` `/feature-flags/redesign` 支持MVCC多版本控制,維護多個歷史版本 歷史版本過多可以執行compact命令完成刪減 ## 監聽kv變化 通過watch機制監聽某個key,或者某個目錄(key前綴)的連續變化 常用于分布式的配置分發,狀態同步 # etcd 服務端etcd,客戶端etcdctl 一般用etcdctl之前會放api版本 ~~~ ETCDCTL_API=3 ./etcdctl ~~~ ## 使用 ~~~ ? Desktop ETCDCTL_API=3 etcdctl put "name" "11" OK ? Desktop ETCDCTL_API=3 etcdctl get "name" name 11 ? Desktop ETCDCTL_API=3 etcdctl del "name" 1 ? Desktop ETCDCTL_API=3 etcdctl get "name" ? Desktop ETCDCTL_API=3 etcdctl put "/cron/jobs/job1" "123" OK ? Desktop ETCDCTL_API=3 etcdctl put "/cron/jobs/job2" "222" OK ? Desktop ETCDCTL_API=3 etcdctl get --prefix "/cron/jobs/" /cron/jobs/job1 123 /cron/jobs/job2 222 ~~~ **watch** ~~~ ? Desktop ETCDCTL_API=3 etcdctl watch "/cron/jobs/" --prefix PUT /cron/jobs/job1 111 ~~~ 從修訂版本2開始觀察key `foo`的改動 ~~~ ? Desktop ETCDCTL_API=3 etcdctl watch --rev=2 foo ~~~ **壓縮修訂版本** ~~~ 這是壓縮修訂版本的命令: etcdctl compact 5 compacted revision 5 #在壓縮修訂版本之前的任何修訂版本都不可訪問 etcdctl get--rev=4 foo Error: rpcerror: code = 11 desc = etcdserver: mvcc: required revision has been compacted ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看