Phoenix 架构
瘦客户端(thin)
顾名思义比较小,phoenix时Hbase的sql皮肤,使用的是sql指令,写sql给到phoenix客户端,sql语句要想操作hbase里面的东西,需要转意成hbase里面的put,scan这些语句;
其中这些转意的操作和过程谁来进行,就取决于他是胖客户端还是瘦客户端,如果他是瘦客户端,转意的过程就不是客户端来进行的,而是把这个sql发送到Phoenix Query Server这个服务上,在这个服务端上进行操作,转意。转意完之后,在操作hbase来执行,就可以了。
胖客户端(thick)
如果是胖客户端,发一条sql给phoenix客户端,phoenix直接就将这个sql指令转意成了put,scan等hbase指令了。然后客户端(就相当于phoenix客户端和hbase客户端合体了)就直接执行hbase中的操作(比如put指令等一系列步骤),put是写流程,hbase在执行写流程的时候,最先连接的是zookeeper。所以在用胖客户端的时候,因为它自己已经转意完了,所以去连接的是zookeeper。如果是瘦客户端的话,过来的是sql,hbase不认识,到zookeeper也没用,得先连接Query Server。是这么一个区别。