Aerospikeを試す #2 HeartBeat & ReverseProxy
前回から引き続き、Aerospikeネタ。
前回はheartbeatのmesh-seed-address-port
に1つのインスタンスを指定しましたが、これが1個だとSPOFになってしまう。
mesh-seed-address-port
は複数指定できるっぽいので、いくつか指定しておけば良いのだろうけど、それはそれでめんどくさい。
インスタンスの追加・削除時に設定を撒かないといけないし。
というわけで、ReverseProxy挟んだらいけんじゃね?という仮説を検証してみようと思ったので、やってみました。
(どうやるのが正解なんだろうか?)
追記
やっぱりこの方法ダメっぽい。
Cluster Visibility
がずっとfalse
だったりとか
Repl'n Factor
が1
のまま(2に設定しているのに)だったりする。
やっぱり公式に書いてある通り
mesh-seed-address-port
を複数設定するのが正解なんだろうか。
今日のテーマ
- Proxyサーバを立てる
- heartbeatの向き先を変える
- AMCから確認する
以上
環境
- Mac OSX 10.10.3
- Vagrant 1.7.2
- Aerospike 3.5.14
Proxyサーバを立てる
前回同様vagrantでインスタンスを立てる。 今回は超単純なReverseProxyができれば良いのでHAProxyを使います。
Vagarntfileの修正
... config.vm.define "proxy" do |server| server.vm.box = "proxy-base" server.vm.box_url = "http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box" server.vm.network :private_network, ip: "192.168.33.200" end ...
インスタンス起動
vagrant up proxy
HAProxyのインストール&設定
まずはインストール
vagrant ssh proxy sudo yum install -y haproxy
したら、設定を書き換える
... frontend forward_mesh *:3002 mode tcp default_backend aerospike_mesh backend aerospike_mesh balance roundrobin server node1 192.168.33.101:3002 check server node2 192.168.33.102:3002 check ...
3002
ポートをroundrobinで前回立てたインスタンスに振り分けます
HAProxyを再起動
sudo /etc/init.d/haproxy restart
heartbeatの向き先を変える
以下、node1``node2
両方に行います
vagrant ssh node1 sudo vi /etc/aerospike/aerospike.conf
network { ... heartbeat { mode mesh port 3002 address 192.168.33.101 mesh-seed-address-port 192.168.33.200 3002 interval 5 timeout 10 } ... }
mesh-seed-address-port
をproxy
サーバのアドレスに変更する
aerospike
も再起動
sudo /etc/init.d/aerospike restart
AMCから確認してみる
http://localhost:8081
にアクセスします。
無事、2台いることが確認できました。 めでたしめでたし(?)
on EC2にするときは、PrivateELB的な物を立てるんだろうか。
けど、なんかAMCを見てるとRepilicationがうまくいって無い気がする... もうちょい調査する。
まとめ
- heartbeatはreverse proxy通してもいけたけど、なんか怪しい
- 次回以降
- プログラムからCRUD
- UDF