您现在的位置是:亿华云 > 热点
聊聊数据库组件功能设计点
亿华云2025-10-09 12:54:35【热点】6人已围观
简介引言数据库中间件承担应用与数据库之间的粘合与润滑,数据库中间件设计的合理应用跑起来就丝滑,否则会拉胯。本文就常见数据库组件相关的功能设计点做个归纳整理:分库分表数据复制数据同步平台全局唯一主键运维自动
引言
数据库中间件承担应用与数据库之间的聊聊粘合与润滑,数据库中间件设计的数据合理应用跑起来就丝滑,否则会拉胯。库组本文就常见数据库组件相关的功计点功能设计点做个归纳整理:
分库分表数据复制数据同步平台全局唯一主键运维自动化可视化一、分库分表
分库分表组件主要为分担数据库压力,聊聊通过多库多表承接请求。数据尽管拥有众多的库组分库分表组件,Apache ShardingSphere作为Apache的功计点顶级项目依旧是主流。无论直接使用还是聊聊基于其二次开发或者自研,均值得研究。数据
1.ShardingSphere-JDBC
客户端直连数据库,库组分布式无中心化,功计点主要针对java语言,聊聊数据库连接消耗多。数据
2.ShardingSphere-Proxy
客户端先连接到Proxy代理,库组通过代理连接数据库,能够跨语言,消耗数据库的连接数少(仅代理直接连接数据库),但是中心化风险点也主要在此。
3.ShardingSphere-Sidecar
网格化代理还在规划中,站群服务器从当前蚂蚁对外提供的service mesh商业方案中,还没DB的mesh,下沉能力的同时,也带来了数据面和控制面板的复杂性。
https://github.com/apache/shardingsphere.git
备注:当前还是客户端直连数据库为主流,中心化的Proxy依然有公司采纳然占比依旧很少,至于Sidecar模式的大规模使用还在未来。
二、数据复制
1.单向搬运
将Mysql数据同步到消息队列或者其他数据存储源,常用开源组件为canal。
https://github.com/alibaba/canal

2.双/单向同步
在异地多活场景中数据库的双向同步、跨机房灾备的单向同步等场景,常用组件otter。
https://github.com/alibaba/otter
其他类似组件:dataLink、databus
https://github.com/ucarGroup/DataLink
https://github.com/linkedin/databus
备注:在单/双向同步场景中通常伴随着DDL的同步。
三、数据同步平台
当随着数据同步的服务器租用场景越来越多,为每个不同的数据源写一个同步插件变得复杂和不好维护,此时可以考虑搭建一个数据同步平台。
通过ReaderPugin和WriterPlugin插件化插件化对接入的数据源和目标数据源只需要编写插件即可数据转换为提高吞吐性能可以引入Flink批处理框架备注:数据同步平台社区也有开源DataX可供参考。
https://github.com/alibaba/DataX/blob/master/introduction.md
Flink-CDC
https://github.com/ververica/flink-cdc-connectors
四、全局唯一主键
在分布式数据库中最好使用分布式全局唯一ID作为数据记录的唯一标识,原因也很简单,主要是避免主键冲突。
跨库数据迁移避免主键冲突双活数据库双向同步时避免主键冲突唯一键设计合理对排序和识别均有良好的辅助作用生成全局唯一ID的方案有很多,常见的有:
UUID数据库发放不同的ID区段雪花算法(snowflake)生成唯一标识雪花算法: 由Twitter创建生成全局唯一ID算法,一个Snowflake ID组成共64位构成如下,如果不需要这么多位可以改造缩短一些长度。
Twitter Scala 版本:
https://github.com/twitter-archive/snowflake/tree/scala_28https://github.com/twitter-archive/snowflake/releases/tag/snowflake-2010
雪花算法java版本参考:
https://github.com/beyondfengyu/SnowFlake/blob/master/SnowFlake.java
五、运维自动化可视化
将常用的一些与DB相关需要手动的创建的自动化、可视化。
数据库申请与创建DDL变更自动化SQL执行结果导出同步任务申请自动化任务运行监控可视化源码下载很赞哦!(723)
站长推荐
其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
全解析异步编程的几种方法
14 张有趣深动图解 FlexBox,还不快进收藏夹吃灰
多中心容灾实践:如何实现真正的异地多活?
当投资者经过第二阶段的认真学习之后又充满了信心,认为自己可以在市场上叱咤风云地大干一场了。但没想到“看花容易绣花难”,由于对理论知识不会灵活运用.从而失去灵活应变的本能,就经常会出现小赢大亏的局面,结果往往仍以失败告终。这使投资者很是困惑和痛苦,不知该如何办,甚至开始怀疑这个市场是不是不适合自己。在这种情况下,有的人选择了放弃,但有的意志坚定者则决定做最后的尝试。
手把手教你用Python实现批量文件的压缩处理
微软发布低温量子控制平台:控制数千量子比特,研究登上自然子刊
鸿蒙开发HUAWEI DevEco Device Tool 2.0 Beta1全新发布,提高开发效率