减少db 连接数压力
热重启配置
可水平扩容
遵守Mysql原生协议
无语言限制,mysqlclient,c,java等都可以使用
Heisenberg服务器通过管理命令可以查看,如连接数,线程池,结点等,并可以调整
采用velocity的分库分表脚本进行自定义分库表,相当的灵活
之前在组里有做过简单的分享,这段时间稍微轻松了点,先分享出来,看有没有更好的idea在这块有所提升
下面开始介绍heisenberg
1.heisenberg总体架构
首先这块架构:
应用对于heisenberg集群来说就是mysql客户端,
而heisenberg也是集成了mysql的原生协议,所以对于应用来说,就相当于单库单表的数据源
无论是mysql客户端,c,jdbc驱动等都可以访问heisenberg服务器,由服务器把分库分表的工作给做掉了
访问heisenberg集群可以通过像lvs,F5等负载软件/设备解决,
其实一台heisenberg的性能是相当的赞了,我压力到2320TPS load 都还只有0.1-0.3左右(CPU 8core,16G),由于找不到mysql物理机器了,只得做罢
服务端内部结构:
mysql对数据库和表的大小都没有做限制,mysql是一个软件,每一个表都是一个独立的文件,大小要看具体 *** 作系统对单个文件的限制。因此,很大,一般不需要管它 。mysql自5.1以后支持分区表,语法同Oracle类似
分区表类型有range、list、hash、key等几种,我给一个range分区的例子吧
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT NOT NULL,
store_id INT NOT NULL
)
PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11),
PARTITION p2 VALUES LESS THAN (16),
PARTITION p3 VALUES LESS THAN (21)
)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)