内容纲要
概要描述
Inceptor Gateway 是一个中间件,作为 client 请求 inceptor server 服务的总入口,为客户端屏蔽掉集群细节,并严格按照配置文件,提供包括不限于负载均衡、SQL规则路由、智能路由(超时转发、宕机转发)、web运维、inceptor安全(LDAP)等功能。本文主要介绍如何通过Inceptor Gateway实现Inceptor session级别的负载均衡。
详细说明
原理是 Inceptor gateway 会根据配置文件 server.xml 中的规则,将通过 Inceptor gateway 提交的 sql 转发到对应的 Inceptor server 上执行;
操作步骤
1、准备工作
集群内需要有至少两个 Incepto r组件,命名可能是 Inceptor1 和 Inceptor2 这种形式,并且两个 Inceptor 共享 metastore,确保两个 Incepto 都处于运行状态
2、修改 server.xml 配置规则
去往InceptorGateway的安装节点,编辑servers.xml,如果文件不存在可以自行创建,需保证文件名一致,并添加如下图所示内容:
vi /etc/inceptorgateway1/conf/servers.xml
对应参数解释如下:
- ①定义的InceptorServer名称
- ②对应的InceptorServerIP和对应的端口号
- ③对应的InceptorServer所属的组,如果想要实现负载均衡则需要保持所有的InceptorServer Tag相同
提供一个文件供参考(下载后将文件重命名为 server.xml):server.xml
3、重启 InceptorGateway 并验证是够生效
在同一台主机上建立两个连接 Inceptor 的 session:
Session1:
Session2:
然后打开 InceptorGateway 的 6060 界面,检查是否有这两个 Session 的相关记录:如下图所示,目前有两个Session,并且成功被路由到了两个Inceptor Server上面
最后通过 beeline 连接 gateway 的 6666 端口,可以访问到两个 Inceptor server 来实现负载均衡,如下图所示: