#finagle_hack で ZooKeeperServerSetCluster を使ったデモをつくりました
ZooKeeperServerSetCluster を使って Finagle サーバのクラスタをつくってみました。
まずはデモをご覧ください。発表会のときに動画を用意しておけばよかったのですが、そこまで手が回りませんでした。
個々の Finagle サーバはそれぞれ単体のサーバとして立ち上がっているだけであり、サーバ側でお互いを意識している訳ではありません。
Finagle クライアント側に ZooKeeper への接続設定と、サーバの接続先(java.net.SocketAddress)情報のリストを持たせます。これらの情報を ClientBuilder で渡すと、リクエストのロードバランシングや障害検知、フェールオーバーなどをよしなにやってくれるようになります。
今回のデモのソースコードは GitHub で公開しています。ZooKeeper さえ起動していれば割と簡単に動かせると思います。
https://github.com/seratch/finagle-cluster-demo
Web アプリは Play Framework 2.0.1 で書いていて Finagle Server は普通に ServerBuilder の build で立ち上げて close で停止、Client は ClientBuilder でつくったクライアントを保持する Thread を立ち上げています。画面上にサーバの様子を表示するのは Play の comet でやっています。
かなり勢いでつくったのでいけてないところもあるとは思いますが、興味があればご覧ください。
Twitter Japan はサイコーでした。 #ステマ
今回、企画してくださった @gakuzzzz さん @kmizu さんと会場提供のみならずいろいろとやってくださった @yusukey さん、ありがとうございました。
またこういう機会があるといいですね!