数据架构:中国电信的Oracle Sharding架构应用案例分析

Oracle Sharding 可以被看做是一个 Shared-Nothing 架构的弹性关系型数据库,最多可以水平扩展到 1000 个独立的Oracle数据库分片,每个分片存储全局表的局部数据,依托原有的分区技术,实现数据的拆分。

1

有了分片,自然要有路由机制,Oracle 通过 Shard Directors 和 Shard Catalog 实现这一目标,应用访问最佳方式是通过使用分区键来进行数据分片的导航。

2

中国电信是中国国内最早实践的用户之一。在 2017 Oracle OpenWorld大会上,中国电信分享了他们的应用情况,题目是:Oracle Sharding ofr China Telecom's WeChat IoT Application,从名字看,这是中国电信基于Wechat - 微信的服务体系应用系统。

3

截至2016年,中国电信在网用户约2.15亿,其实践案例微信服务平台是 BSS 域的一部分,实现了基于 WeChat 的客户服务系统。

4

Q:为什么采用Oracle Sharding作为解决方案?中国电信做了解答
A:因为这个项目要服务于大量的 NB-IoT(Narrow Band Internet of Things,窄带蜂窝物联网)网络用户。
A:在评估了 Oracle Sharding,MySQL、MongoDB 和 MariaDB 之后,选择了Oracle数据库的解决方案,因为更换数据库的迁移成本太高(too high),DBA 和 开发人员 更熟悉 Oracle 数据库。

5

在经过参考同行、测试验证之后,2017年6月29日,这个系统正式上线,上线之后运行稳定。

6

整个系统的架构图如下,目前使用了 4 套 Oracle RAC,构成了具有四个分片 - Shard 的 Oracle 分布式架构。图中未提交备库和容灾设计,一般来说,还应该有 Data Guard 存在于这个架构之中。

7

未来,中国电信将依托这个平台,继续整合其他应用,比如 10000 号客户服务系统。

8

另外一个Oracle Sharding的典型客户是 Dyn ,领先的DNS和Email服务提供商,他们通常要在90天内面对 2 万亿次的查询,产生 1.6 TB/天 的数据量,3个月的数据增幅超过 144 TB。

9

Dyn 的Sharding 部署方案跨越了两个数据中心,其间通过Data Guard技术进行同步:

10

看起来Oracle Sharding的威力正在逐步展现,是时候了,研究起来。原文发布时间为:2017-10-30
本文作者:盖国强
本文来自云栖社区合作伙伴“数据和云”,了解相关信息可以关注“数据和云”微信公众号

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/228617

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。