在DB存储需求中,尽管业务不同,技术难点还是类似的,开源世界有很多DB中间件,解决方案也以通用方案为主,满足业务需要为前提,支持各种类型的需求。
Oceanus致力于打造一个功能简单、可依赖、易于上手、易于扩展、易于集成的解决方案,甚至是平台化系统。拥抱开源,提供各类插件机制集成其他开源项目,新手可以在几分钟内上手编程,分库分表逻辑不再与业务紧密耦合,扩容有标准模式,减少意外错误的发生。
Oceanus在设计时非常注重使用者的评价,配置结构近乎于和使用者交流约定业务规则,便于不同的人看同一套配置,互相理解流程。当配置文件编写完成后,编码就变得更加简单,只调用Oceanus客户端的几个方法就可以实现数据库操作,不再关心HA、报警、负载均衡、性能监控等问题。良好的用户视觉减少了分库分表在业务场景中的耦合度,对于编码者就像只对一个table操作,Oceanus负责进行sql解析、路由、sql重写。
如提交: select * from user;
改写成: select * from user0;
select * from user1;
select * from user2;
select * from user3;
分发给不同的库(或者同库)执行,用户视觉如图:
https://github.com/58code/Oceanus