Warning: Undefined global variable $debug in /var/www/ourcoders/tiny4cocoa/application/controllers/baseController.php on line 124
zhh-4096 2019-12-24 21:07:06 发布的技术动态 - OurCoders (我们程序员)
zhh-4096
2019-12-24 21:07:06 发布
搞定了分布式OLTP场景下的关系数据库并且做了很好的模块划分后,我真的发现后端好多系统都是没必要存在的。zookeeper这种在配置中心常用的组件也只适合在低并发场景下存点应用配置和状态信息,远远满足不了数据库场景下的记录复制需求,只要把数据库的SQL层去掉,轻量化之后数据库自带的复制和存储组件完全能胜任zookeeper的工作。

缓存系统也是一样,当初也是因为数据库的存储是面向硬盘设计的并且简单的crud也得经过缓慢的SQL层,所以应用不得不引入redis这种缓存系统。现代数据库为了支持内存临时表其实也会用并发跳表这种高性能的数据结构,若是在客户端提供kv接口然后数据库后端绕过SQL层,不就变成一个缓存系统了。而且这种方案还能轻易解决数据一致性问题。

最后,再说到应用服务器集群,像tomcat和vert.x的集群要么自己实现session状态的管理要么借助第三方的集群框架,所以如果分布式数据库去掉SQL层或可选的去掉事务引擎,留下分布式存储,然后把单机版的tomcat或vert.x集成一下又能构建一个应用服务器集群了。