1 / 14
文档名称:

分库分表中间件heisenberg.pptx

格式:pptx   大小:108KB   页数:14页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

分库分表中间件heisenberg.pptx

上传人:aideliliang128 2018/1/22 文件大小:108 KB

下载得到文件列表

分库分表中间件heisenberg.pptx

相关文档

文档介绍

文档介绍:钱包与支付发展部
熊照
Heisenberg分库分表proxy
应用总架构
Applications(Mysql protocol)
Heisenberg cluster
Load balance
Heisenberg
Heisenberg
Heisenberg
Mysql instances
mysql
mysql
mysql
mysql
优势
分库分表与应用脱离,分库表如同使用单库表一样
减少db 连接数压力
热重启配置
可水平扩容
遵守Mysql原生协议
无语言限制,mysqlclient,c,java等都可以使用
Heisenberg服务器通过管理命令可以查看,如连接数,线程池,结点等,并可以调整
服务端总体架构
FrontConnectionFactory(AIO)
AST SQL Parser
ServerRouter
DataNode1
DataNode2
DataNodeN
ServerConnection Factory
dn1:SQL1,dn2:SQL2,dnN:SQL3
shardRule
Mysql
Protocol packet
SQL
SQL ASTNode
ManagerConnectionFactory(AIO)
Shard 篇
dn1_M
dn2_M
dn3_M
Shard_dn
shardRule1
shardRule2
shardRule3
dn1_S
dn2_S
dn3_S
Shard 篇
dn1
dn2
dn3
Id:1012
Id:1023
Id:1033

ServerRouter
dn3
1013
1033
shardRule
dn2
1012
dbRule : $ ($-1)
tbRule: $($-2)
velocity 脚本
db3:tb13
db3:tb33
db2:tb12
Shard配置 dbRule
申明列名,可以是多列
dbRuleList
<dbRuleList>
<dbRule><![CDATA[#set($start=$() - 2)##
#set($end=$() - 1)##
$($start,$end)]]>
</dbRule>
<dbRule>...</dbRule>
</dbRuleList>
<columns>TRANS_ID</columns>
第一条无法满足时,使用第二条
Shard配置 tbRule
tbRuleList
tbPrefix groovy脚本
<tbRuleList>
<tbRule><![CDATA[#set($start=$() - 2)##
$($start)]]></tbRule>
</tbRuleList>
<tbPrefix><![CDATA[
def map = [:];
for (int i=0; i<10; i++) {
def list = [];
for (int j=0; j<10; j++) {
(i+""+j);
}
(i,list);
};
return map;
]]></tbPrefix>
集群硬负载篇
Heisenberg1
Heisenberg2
Heisenberg3
Mysql protocol
BVS/BNS
hb
hb
集群驱动负载篇
Heisenberg1
Heisenberg2
Heisenberg3
Heisenberg jdbc-driver
hb
hb
clusterService
clusterService
clusterService
Step1:clusterInfo&LB
Step2:do SQL operation