目次
zookeeper に基づくアクティブとバックアップの切り替え方法
ホームページ バックエンド開発 PHPチュートリアル Zookeeper_PHP チュートリアルに基づいたプライマリとセカンダリの切り替え方法

Zookeeper_PHP チュートリアルに基づいたプライマリとセカンダリの切り替え方法

Jul 12, 2016 am 08:55 AM
android

zookeeper に基づくアクティブとバックアップの切り替え方法

zookeeper の ZOO_EPHEMERAL ノード (ZOO_EPHEMERAL がニーズを満たせない場合は、ZOO_SEQUENCE と組み合わせて使用​​することを検討できます)。この機能を使用すると、セッションが閉じられるか期限切れになると自動的に削除されます。 、複数のノード間で 2 つまたはアクティブ/スタンバイの切り替えを実現できます。


実装方法:
1) プロセスの開始時に、zookeeper_init() を呼び出して初期化します:
bool、zookeeper_init を再度呼び出す必要があります、
// この時点で渡すことができる _clientid は、前のメソッドで生成された _clientid です。 Zookeeper_init()


// Zookeeper_init() は非同期呼び出しであり、非 NULL を返すことはセッションを示しているわけではないことに注意してください 確立は成功しました、
// zk_watcher のタイプが ZOO_SESSION_EVENT で、状態が ZOO_CONNECTED_STATE の場合のみ,
// これは本当にセッションが正常に確立されたことを意味するのでしょうか。
_zhandle =zookeeper_init(zk_hosts, zk_watcher, 5000, _clientid, this, 0);
if (NULL == _zhandle)
{
MYLOG_ERROR("init Zookeeper failed: %sn", zerror(errno));
return false;
}


MYLOG_INFO("init Zookeeper(%s) successn", zk_hosts);
return true;
}


2) 作業に入る前に、まずマスターに切り替えてみて、成功した後にのみ作業に入るようにしてください。マスターへの切り替え
bool ポーリングを使用しない場合は、_zk_path
を監視できます。 mooon::sys::CUtils::millisleep(1000);


// マスターでない場合は、マスターになることを試みます。変換が失敗した場合は、次の試行に進みます
if (!is_master() && !change_to_master())
continue;


do_work();
}
}


bool X::is_master() const
{
return _is_master;
}


bool 現在のマスターが誰であるかを決定するために使用されます
// _zk_path 値の例: /master/test、/master が最初に存在する必要があることに注意してください
int errcode = Zoo_create(_zhandle, _zk_path.c_str(), _myip.c_str(), _myip.size ()+1, &ZOO_OPEN_ACL_UNSAFE, ZOO_EPHEMERAL, NULL, 0);


// (-4) 接続損失 (zookeeper_init() に指定された無効なホストなど) (有効なホストではありません)
if (errcode != ZOK)
{
_is_master = false;


// スタンバイ状態時のログ出力を削減します
if (0 == log_counter++ % 600)
{
MYLOG_DEBUG("becomeマスター[%s] が失敗しました: (%d) %sn", _zk_path.c_str(), errcode, zerror(errcode));
}


return false;
}
else
{
_is_master = true;
log_counter = 0;
MYLOG_INFO("becase master[% s]n", _zk_path.c_str());


// 元のマスターが進行中のプロセスを完了できるように、しばらくスリープします
mooon::sys::CUtils ::millisleep(2000);
return true;
}
}


3) zk_watcher は、Zookeeper セッションが正常に確立されたとき、または期限切れになったときにトリガーされます。これは、タイプと状態によって区別できます
void zk_watcher(zhandle_t *zh, int type, int state, const char *path, void *context)
{
state, context, path);


//zookeeper_init が成功すると、type は ZOO_SESSION_EVENT、state は ZOO_CONNECTED_STATE になります
if ((ZOO_SESSION_EVENT == type ) && (ZOO_CONNECTED_STATE == 状態))
{
x->on_zookeeper_connected(path) ;
}
else if ((ZOO_SESSION_EVENT == タイプ) && (ZOO_EXPIRED_SESSION_STATE == 状態))
{
// Zookeeper_init() が必要再度呼び出される場合は、現在のプロセスを終了して再起動する方が簡単です
x->on_zookeeper_expired();
}
}


添付ファイル: Zookeeper ログ
デフォルトでは、Zookeeper ログは stderr に出力されますが、次を使用することもできますまた、zoo_set_debug_level() を使用して、zookeeper のログ レベルを制御することもできます。




http://www.bkjia.com/PHPjc/1115820.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/1115820.html

技術記事

セッションが終了したり期限切れになったときの、Zookeeper ZOO_EPHEMERAL ノードに基づくマスター/バックアップ切り替え方法 (ZOO_EPHEMERAL がニーズを満たせない場合は、ZOO_SEQUENCE と組み合わせて使用​​することを検討できます)。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します 新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します Sep 12, 2024 pm 12:23 PM

ここ数日、Ice Universeは、サムスンの次期主力スマートフォンであると広く信じられているGalaxy S25 Ultraの詳細を着実に明らかにしている。とりわけ、リーカーはサムスンがカメラのアップグレードを1つだけ計画していると主張した

Samsung Galaxy S25 Ultraの最初のレンダリング画像がリークされ、噂のデザイン変更が明らかに Samsung Galaxy S25 Ultraの最初のレンダリング画像がリークされ、噂のデザイン変更が明らかに Sep 11, 2024 am 06:37 AM

OnLeaks は、X (旧 Twitter) のフォロワーから 4,000 ドル以上を集めようとして失敗した数日後、Android Headlines と提携して Galaxy S25 Ultra のファーストルックを提供しました。コンテキストとして、h の下に埋め込まれたレンダリング イメージ

IFA 2024 | TCLのNXTPAPER 14は、パフォーマンスではGalaxy Tab S10 Ultraに匹敵しませんが、サイズではほぼ匹敵します IFA 2024 | TCLのNXTPAPER 14は、パフォーマンスではGalaxy Tab S10 Ultraに匹敵しませんが、サイズではほぼ匹敵します Sep 07, 2024 am 06:35 AM

TCLは、2つの新しいスマートフォンの発表に加えて、NXTPAPER 14と呼ばれる新しいAndroidタブレットも発表しました。その巨大な画面サイズはセールスポイントの1つです。 NXTPAPER 14 は、TCL の代表的なブランドであるマット LCD パネルのバージョン 3.0 を搭載しています。

Vivo Y300 Pro は、7.69 mm のスリムなボディに 6,500 mAh のバッテリーを搭載 Vivo Y300 Pro は、7.69 mm のスリムなボディに 6,500 mAh のバッテリーを搭載 Sep 07, 2024 am 06:39 AM

Vivo Y300 Pro は完全に公開されたばかりで、大容量バッテリーを備えた最もスリムなミッドレンジ Android スマートフォンの 1 つです。正確に言うと、このスマートフォンの厚さはわずか 7.69 mm ですが、6,500 mAh のバッテリーを搭載しています。これは最近発売されたものと同じ容量です

Samsung Galaxy S24 FEは、4色と2つのメモリオプションで予想よりも低価格で発売されると請求されています Samsung Galaxy S24 FEは、4色と2つのメモリオプションで予想よりも低価格で発売されると請求されています Sep 12, 2024 pm 09:21 PM

サムスンは、ファンエディション(FE)スマートフォンシリーズをいつアップデートするかについて、まだ何のヒントも提供していない。現時点では、Galaxy S23 FE は 2023 年 10 月初めに発表された同社の最新版のままです。

Motorola Razr 50s は初期リークで新たな予算を折り畳める可能性があることを示す Motorola Razr 50s は初期リークで新たな予算を折り畳める可能性があることを示す Sep 07, 2024 am 09:35 AM

Motorola は今年数え切れないほどのデバイスをリリースしましたが、そのうち折りたたみ式デバイスは 2 つだけです。ちなみに、世界の大部分ではこのペアが Razr 50 および Razr 50 Ultra として受け入れられていますが、Motorola は北米では Razr 2024 および Razr 2 として提供しています。

新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します 新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します Sep 12, 2024 pm 12:22 PM

ここ数日、Ice Universeは、サムスンの次期主力スマートフォンであると広く信じられているGalaxy S25 Ultraの詳細を着実に明らかにしている。とりわけ、リーカーはサムスンがカメラのアップグレードを1つだけ計画していると主張した

Xiaomi Redmi Note 14 Pro Plusは、Light Hunter 800カメラを搭載した初のQualcomm Snapdragon 7s Gen 3スマートフォンとして登場します Xiaomi Redmi Note 14 Pro Plusは、Light Hunter 800カメラを搭載した初のQualcomm Snapdragon 7s Gen 3スマートフォンとして登場します Sep 27, 2024 am 06:23 AM

Redmi Note 14 Pro Plusは、昨年のRedmi Note 13 Pro Plus(Amazonで現在375ドル)の直接の後継者として正式に発表されました。予想通り、Redmi Note 14 Pro Plusは、Redmi Note 14およびRedmi Note 14 Proと並んでRedmi Note 14シリーズをリードします。李

See all articles