当前位置:Gxlcms > 数据库问题 > mysql分表分库选型

mysql分表分库选型

时间:2021-07-01 10:21:17 帮助过:52人阅读

void rollback() { final int initCount = session.getTargetCount(); lock.lock(); try { reset(initCount); } finally { lock.unlock(); } if (session.closed()) { decrementCountToZero(); return; } // 执行 int started = 0; for (final RouteResultsetNode node : session.getTargetKeys()) { if (node == null) { LOGGER.error("null is contained in RoutResultsetNodes, source = " + session.getSource()); continue; } final BackendConnection conn = session.getTarget(node); if (conn != null) { boolean isClosed=conn.isClosedOrQuit(); if(isClosed) { session.getSource().writeErrMessage(ErrorCode.ER_UNKNOWN_ERROR, "receive rollback,but find backend con is closed or quit"); LOGGER.error( conn+"receive rollback,but fond backend con is closed or quit"); } if (LOGGER.isDebugEnabled()) { LOGGER.debug("rollback job run for " + conn); } if (clearIfSessionClosed(session)) { return; } conn.setResponseHandler(RollbackNodeHandler.this); //support the XA rollback if(session.getXaTXID()!=null && conn instanceof MySQLConnection) { MySQLConnection mysqlCon = (MySQLConnection) conn; String xaTxId = session.getXaTXID(); //exeBatch cmd issue : the 2nd package can not receive the response mysqlCon.execCmd("XA END " + xaTxId + ";"); mysqlCon.execCmd("XA ROLLBACK " + xaTxId + ";"); }else { conn.rollback(); } ++started; } }

但问题是已经成功的提交无法回滚,就会造成分库或多节点间数据不一致。

 

Vitess:

Youtube出的与我们现有架构中需要注入的接口对应不上,需要改造现有接口,不太满足要求

技术分享

Atlas(https://github.com/Qihoo360/Atlas):

360开源的,但是在github上发现他们似乎不太会花精力维护了,最近一次代码的更新时两年前了,另外启了事务似乎不分读写都会走主库,关于跨库方面似乎也不是很符合我们的需求。

技术分享

Oceanus(https://github.com/58code/Oceanus):已经很久没维护了,而且只有37个提交。

 

DBProxy (https://github.com/Meituan-Dianping/DBProxy)

美团,C语言开发的,独立部署式的,还是希望能有一个直连的,并且有问题可以自己改的

 

sharding-jdbc https://github.com/dangdangdotcom/sharding-jdbc

当当直连数据库式的,下面是2017-03-30截的图,大版本改动太大稳定性如何,感觉还是要看一段时间再入场比较好,

技术分享

最大努力送达模型,其他方面目前感觉是最合适的,分片配置成一个就是不分库

技术分享

==========================================================

咱最近用的github:https://github.com/saaavsaaa

微信公众号:

                      技术分享

mysql分表分库选型

标签:mybatis   pack   ping   style   c语言   gets   一点   tco   init   

人气教程排行