shardingsphere是用来做什么的?如何实践呢?

2020-05-25 17:10:57 java常见问答 5123

如果你也听说过mycat的话,那么应该对shardingsphere也不会陌生了,所以你了解shardingsphere是用来干嘛的吗?一般实践在哪里呢?

可以用来分库分表。我们知道随着业务越来越大,单表数据超出了数据库支撑的容量,达到了数据库的瓶颈。这时可以采用分库分表来缓解的。

一般来说,处理数据库瓶颈问题的方法有以下几种:

1.换数据库(缓存);

2.Sql、索引、字段的优化;

3.读写分离实现(业务有关优化);

4.分库分表(业务);

5.分区;

分库分表方式。

垂直:通俗的说法叫做“大表拆小表”,拆分是基于关系型数据库中的“列”(字段)进行的。(字段拆分)

水平:以某个字段按照一定的规律(取模)将一个表的数据分到多个库中(内容拆分)

分库分表的常见算法有以下三种:

其一:取模(Hash),用某个字段对数据库个数取模;

其二:范围区分(range),根据时间划分;

其三:预定义(list):,提前预估定点量,每个数据库平均分多少数据。

读写分离。读写分离主要应用在读多写少的项目里面,要有主从库同步,但是可能会有主从延迟现象数据不一致的情况出现,这就要根据具体业务去想办法避免了。

对于特殊的场景我们可以设置直接查询主库的,也可以使用sharding-sphere的强制路由(sql-hint)来解决。比如说:在下单的时候订单信息insert到主库,在支付的时候去查重库的时候可能数据还没有同步过来呢,这种时候我们就可以把这种场景直接设置强制查询主库了。

那么以上就是有关shardingsphere的所有内容了,还想了解更多java架构师相关信息,记得关注本站消息哦。