数据库中间件承担应用与数据库之间的粘合与润滑,数据库中间件设计的合理应用跑起来就丝滑,否则会拉胯。本文就常见数据库组件相关的功能设计点做个归纳整理:
创新互联建站是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十年时间我们累计服务了上千家以及全国政企客户,如边坡防护网等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞扬。
分库分表组件主要为分担数据库压力,通过多库多表承接请求。尽管拥有众多的分库分表组件,Apache ShardingSphere作为Apache的顶级项目依旧是主流。无论直接使用还是基于其二次开发或者自研,均值得研究。
客户端直连数据库,分布式无中心化,主要针对java语言,数据库连接消耗多。
客户端先连接到Proxy代理,通过代理连接数据库,能够跨语言,消耗数据库的连接数少(仅代理直接连接数据库),但是中心化风险点也主要在此。
网格化代理还在规划中,从当前蚂蚁对外提供的service mesh商业方案中,还没DB的mesh,下沉能力的同时,也带来了数据面和控制面板的复杂性。
https://github.com/apache/shardingsphere.git
备注:当前还是客户端直连数据库为主流,中心化的Proxy依然有公司采纳然占比依旧很少,至于Sidecar模式的大规模使用还在未来。
将Mysql数据同步到消息队列或者其他数据存储源,常用开源组件为canal。
https://github.com/alibaba/canal

在异地多活场景中数据库的双向同步、跨机房灾备的单向同步等场景,常用组件otter。
https://github.com/alibaba/otter
其他类似组件:dataLink、databus
https://github.com/ucarGroup/DataLink
https://github.com/linkedin/databus
备注:在单/双向同步场景中通常伴随着DDL的同步。
当随着数据同步的场景越来越多,为每个不同的数据源写一个同步插件变得复杂和不好维护,此时可以考虑搭建一个数据同步平台。
备注:数据同步平台社区也有开源DataX可供参考。
https://github.com/alibaba/DataX/blob/master/introduction.md
Flink-CDC
https://github.com/ververica/flink-cdc-connectors
在分布式数据库中最好使用分布式全局唯一ID作为数据记录的唯一标识,原因也很简单,主要是避免主键冲突。
生成全局唯一ID的方案有很多,常见的有:
雪花算法: 由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相关需要手动的创建的自动化、可视化。
网站栏目:聊聊数据库组件功能设计点
文章链接:http://www.csdahua.cn/qtweb/news26/212426.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网