微信支付用的数据库开源了
腾讯TBase是一款腾讯自研高性能HTAP数据库,提供 高性能的OLTP和OLAP能力,同时保证 可扩展全局一致性分布式事务(ACID),为用户提供高一致性的分布式数据库服务和高性能的数据仓库服务。一方面解决了传统数据库扩展不足、数据sharding之后数据库事务的严格一致性难题、数据安全、跨地域容灾等问题,同时具备了高性能事务处理、数据治理、混合负载支持等能力。
在OLTP方面,TBase采用 MVCC+全局时钟+2PC+SSI的方式来实现全局一致性分布式事务,同时引入大量性能优化的设计来减少全局事务带来的开销。在小规模集群上,TBase能够提供 超过300万TPMTotal的事务处理吞吐量(工业界标准TPCC测试集)。
交易毫秒内完成
TBase已经覆盖多个行业的标杆用户,其中对内支持了微信广告、微信支付、腾讯地图等海量数据业务,一笔交易毫秒内即可完成, 支撑了微信支付50倍的交易增长。
TBase是一个提供写可靠性,多主节点数据同步的关系数据库集群平台。你可以将TBase配置一台或者多台主机上,TBase数据存储在多台物理主机上面。数据表的存储有两种方式, 分别是distributed或者replicated ,当向TBase发送查询 SQL时,TBase会自动向数据节点发出查询语句并获取最终结果。
TBase采用分布式集群架构(如下图),该架构分布式为无共享(share nothing)模式,节点之间相应独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转,各处理单元之间通过网络协议进行通信,并行处理和扩展能力更好,这也意味着只需要简单的x86服务器就可以部署TBase数据库集群。
下面简单解读一下TBase的三大模块:
-
Coordinator:协调节点(简称CN)
业务访问入口,负责数据的分发和查询规划,多个节点位置对等,每个节点都提供相同的数据库视图;在功能上CN上只存储系统的全局元数据,并不存储实际的业务数据。 -
Datanode:数据节点(简称DN)
每个节点还存储业务数据的分片在功能上,DN节点负责完成执行协调节点分发的执行请求。 -
GTM:全局事务管理器(Global Transaction Manager)
负责管理集群事务信息,同时管理集群的全局对象,比如序列等。
接下来,让我们来看看如何从源码开始,完成到TBase集群环境的搭建。
TBase源码编译安装
1. 创建tbase用户
注意:所有需要安装TBase集群的机器上都需要创建
mkdir /data
useradd -d /data/tbase tbase
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
微信支付用的数据库开源了
下载Word文档到电脑,方便收藏和打印~
相关文章
- 如何在 Java 数据分析中应用 ARIMA 模型?(ARIMA模型在Java数据分析中的应用)
- 如何使用 Java 的 Scanner 读取二进制文件?(Java的Scanner如何读取二进制文件)
- 在 Java 中如何进行变量的声明?(Java中怎么声明一个变量)
- 如何将 Java 父类强制转换成子类?(java父类怎么强制转换成子类)
- 在 Java 中,add()函数的最佳实践究竟是什么?(在Java中add()函数最佳实践是什么)
- 为什么要选择 Gosling Java 而不是其他版本呢?(为什么选择Gosling Java而不是其他版本)
- 如何在 Java socket 编程中有效处理粘包问题?(java socket编程怎样处理粘包问题)
- 在 Java 中如何使用 BigDecimal 来比较两个数的大小?(Java中bigdecimal怎么比较两个数大小)
- Java 中如何进行日志敏感信息的替换?有哪些最佳实践?(Java中替换日志敏感信息的最佳实践)
- 如何在 Java 中定义一种方法?(java如何定义一种方法)