配置Apache Phoenix基于nginx的负载均衡,HA

配置Apache Phoenix QueryServer基于nginx的负载均衡,HA,nginx配置如下:

upstream  phoenixServer {
ip_hash;
server   172.18.10.35:8765 max_fails=5 fail_timeout=60s;
server   172.18.10.36:8765 max_fails=5 fail_timeout=60s;
# server   172.18.10.35:8765 backup;
# server   172.18.10.36:8765;
}


server{
        listen 8764;
        server_name localhost;
location / {  
            proxy_pass   http://phoenixServer;
    access_log /var/log/nginx/phoenixServer.log;
    error_log /var/log/nginx/phoenixServer_error.log;  
        }

}

用户请求分配到两台服务器的phoenix的去处理,根据用户的IP值hash的结果分给两台不同的服务器处理,这样也能保证每个用户访问同一台服务器,从而最终保证phoenix的balnace、ha

 

测试:

1、测试用例:

import phoenixdb
import phoenixdb.cursor


database_url = 'http://localhost:8764/'
conn = phoenixdb.connect(database_url, autocommit=True)


cursor = conn.cursor()
cursor.execute("DROP TABLE users")
cursor.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, username VARCHAR)")
cursor.execute("UPSERT INTO users VALUES (?, ?)", (1, 'admin'))
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())


cursor = conn.cursor(cursor_factory=phoenixdb.cursor.DictCursor)
cursor.execute("SELECT * FROM users WHERE id=1")

print(cursor.fetchone()['USERNAME'])

 

2、环境配置

3台服务器如上

备注(各台服务器开启的服务):

zt02:nginx、queryserver

zt03:queryserver

 

3、从zt01执行测试用例:

zt01:

查看queryserver日志:

结果:zt01访问了zt03的queryserver

 

4、从zt02执行测试用例:

zt02:

查看queryserver日志:

结果:zt02访问了zt02的queryserver

 

5、停掉zt02的queryserver:

再次从zt02访问queryserver:

查看zt03的queryserver日志:

结果:停掉任意一台的queryserver,依然能够正常访问phoenix

 

结论:

apache  phoenix queryserver的balance、ha可以通过nginx来做

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值