如何水平擴展與達到高可用性(HA)
Nchan可將訊息儲存在檔案、記憶體與Redis,速度最快的是儲存在記憶體裡,但如果重開機訊息就會不見,而且如果需要兩台做Load Balance,彼此之間的訊息也無法同步,很可能造成A連線上第一台,B卻往第二台發送訊息,卻永遠發送不到的狀況發生,所以要做到水平擴展,勢必要跟Redis做結合,而在Nchan要做到這件事,也相當容易。
http {
nchan_redis_url "redis://redis_server:6379";
server {
listen 80;
location ~ /redis_sub/(\w+)$ {
nchan_subscriber;
nchan_channel_id $1;
nchan_use_redis on;
}
location ~ /redis_pub/(\w+)$ {
nchan_publisher;
nchan_channel_id $1;
nchan_use_redis on;
}
}
}只需要設定Redis master的位置,就會自動發現其他的slave機器,並在pub與sub的位置開啟使用Redis即可。
當然Nchan也支援Redis cluster
Last updated