Codisクイック起動の注意事項

3722 ワード

codisのtutorialドキュメントに従って、単機版テストcodisクラスタを迅速に起動し、ドキュメントについて行くとピットに遭遇します.さまざまなコンポーネントをダウンロードしてインストールする過程は言うまでもなく、仮想マシンでcodisクラスタを迅速に起動する際に発生した問題を記録します.
まず、単機版は「外部コンポーネント依存なし」で、この軽く書くと、私と同じようにcodis-dashboardを起動した後、正常に閉じていない場合は特に注意する必要があります.私が勉強している間に仮想マシンにインストールされていることを知っておくと、勝手に仮想マシンを閉じることはよくあります.
では、2回目以降はこのような異常に遭遇する可能性があります.
topom.go:189: [ERROR] store: acquire lock of codis-demo failed
[error]: file already exists
    4   /usr/local/codis/src/github.com/CodisLabs/codis/pkg/models/fs/fsclient.go:144
            github.com/CodisLabs/codis/pkg/models/fs.(*Client).writeFile
    3   /usr/local/codis/src/github.com/CodisLabs/codis/pkg/models/fs/fsclient.go:191
            github.com/CodisLabs/codis/pkg/models/fs.(*Client).Create
    2   /usr/local/codis/src/github.com/CodisLabs/codis/pkg/models/store.go:119
            github.com/CodisLabs/codis/pkg/models.(*Store).Acquire
    1   /usr/local/codis/src/github.com/CodisLabs/codis/pkg/topom/topom.go:188
            github.com/CodisLabs/codis/pkg/topom.(*Topom).Start
    0   /usr/local/codis/src/github.com/CodisLabs/codis/cmd/dashboard/main.go:169
            main.main
        ... ...

このとき、zkノードを馬鹿に削除しないでください.zkはこの/codis 3/codis-demo/topomノードを作成していないことに気づきます.この時は単機版なので、あなたはまだzkに依存していません.
Fast Start Cluster Metadata Storageではfilesystemが使用され、デフォルトのデータ・パスは/tmp/codisに保存されます.起動に失敗した場合は、現在のユーザーがそのパスに対して読み書き権限を持っているかどうかを確認します.
あなたのデータはzkノードの下に保存されているのではなく、/tmp/codisディレクトリの下に保存されています.ディレクトリの下のデータを削除すればいいです.configディレクトリの下にあるdashboard.toml構成では、この点もわかります.
##################################################
#                                                #
#                  Codis-Dashboard               #
#                                                #
##################################################

# Set Coordinator, only accept "zookeeper" & "etcd" & "filesystem".
# for zookeeper/etcd, coorinator_auth accept "user:password" 
# Quick Start
coordinator_name = "filesystem"
coordinator_addr = "/tmp/codis"
#coordinator_name = "zookeeper"
#coordinator_addr = "127.0.0.1:2181"
#coordinator_auth = ""

もう1つ注意しなければならないのは、すべてのプロセスを開始した後、ブラウザでdashboardにアクセスする必要がある場合、ファイアウォールが対応するポート番号を開くことに注意することです.私のcentosバージョン番号は7で、ファイアウォールの操作コマンドにはいくつかの違いがあります.https://www.cnblogs.com/crazytata/p/10252201.html
また、codisのインストールについては、この記事を参照してください.https://blog.csdn.net/wangqi880/article/details/65443830
codis 3は、以下のいくつかのコンポーネントに分けられます.
  • Codis Server:redis-3.2.8ブランチに基づいて開発されました.追加のデータ構造を追加し、slotに関する操作とデータ移行命令をサポートします.具体的な変更は、ドキュメントredisの変更を参照してください.
  • Codis Proxy:クライアント接続のRedisエージェントサービスは、Redisプロトコルを実現しています.一部のコマンドがサポートされていない以外(サポートされていないコマンドリスト)、表現はオリジナルのRedisと区別されません(Twemproxyのようです).
  • 同じビジネスクラスタの場合、複数のcodis-proxyインスタンスを同時に配置することができる.
  • 異なるcodis−proxy間でcodis−dashboardによって状態同期が保証される.

  • Codis Dashboard:クラスタ管理ツールで、codis-proxy、codis-serverの追加、削除、移行などの操作をサポートします.クラスタ状態が変化すると、codis−dashboardはクラスタ下のすべてのcodis−proxyの状態の一貫性を維持する.
  • 同じトラフィッククラスタの場合、同じ時刻codis-dashboardは0個または1個しか存在しない.
  • クラスタに対するすべての変更はcodis-dashboardによって完了する必要があります.

  • Codis Admin:クラスタ管理のコマンドラインツール.
  • は、codis−proxy、codis−dashboardステータス、および外部ストレージへのアクセスを制御するために使用することができる.

  • Codis FE:クラスタ管理インタフェース.
  • 複数のクラスタインスタンス共有は、同じフロントエンドディスプレイページを共有することができる.
  • プロファイル管理バックエンドcodis-dashboardリストにより、プロファイルが自動的に更新されます.

  • Storage:クラスタ状態の外部ストレージを提供します.
  • はNamespace概念を提供し、異なるクラスタは異なるproduct nameに従って組織される.
  • は現在、Zookeeper、Etcd、Fsの3つの実装のみを提供していますが、抽象的なinterfaceは独自に拡張できます.