数据架构:中国电信的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
本文作者:盖国强
本文来自云栖社区合作伙伴“数据和云”,了解相关信息可以关注“数据和云”微信公众号

相关文章
|
2月前
|
存储 Oracle 关系型数据库
关系型数据库Oracle应用场景
【7月更文挑战第5天】
89 3
|
1天前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
2天前
|
缓存 负载均衡 数据管理
深入探索微服务架构的核心要素与实践策略在当今软件开发领域,微服务架构以其独特的优势和灵活性,已成为众多企业和开发者的首选。本文将深入探讨微服务架构的核心要素,包括服务拆分、通信机制、数据管理等,并结合实际案例分析其在不同场景下的应用策略,旨在为读者提供一套全面、深入的微服务架构实践指南。**
**微服务架构作为软件开发领域的热门话题,正引领着一场技术革新。本文从微服务架构的核心要素出发,详细阐述了服务拆分的原则与方法、通信机制的选择与优化、数据管理的策略与挑战等内容。同时,结合具体案例,分析了微服务架构在不同场景下的应用策略,为读者提供了实用的指导和建议。
|
26天前
|
消息中间件 负载均衡 Kafka
Kafka 实现负载均衡与故障转移:深入分析 Kafka 的架构特点与实践
【8月更文挑战第24天】Apache Kafka是一款专为实时数据处理和流传输设计的高性能消息系统。其核心设计注重高吞吐量、低延迟与可扩展性,并具备出色的容错能力。Kafka采用分布式日志概念,通过数据分区及副本机制确保数据可靠性和持久性。系统包含Producer(消息生产者)、Consumer(消息消费者)和Broker(消息服务器)三大组件。Kafka利用独特的分区机制实现负载均衡,每个Topic可以被划分为多个分区,每个分区可以被复制到多个Broker上,确保数据的高可用性和可靠性。
39 2
|
26天前
|
数据采集 存储 Java
Flume Agent 的内部原理分析:深入探讨 Flume 的架构与实现机制
【8月更文挑战第24天】Apache Flume是一款专为大规模日志数据的收集、聚合及传输而设计的分布式、可靠且高可用系统。本文深入解析Flume Agent的核心机制并提供实际配置与使用示例。Flume Agent由三大组件构成:Source(数据源)、Channel(数据缓存)与Sink(数据目的地)。工作流程包括数据采集、暂存及传输。通过示例配置文件和Java代码片段展示了如何设置这些组件以实现日志数据的有效管理。Flume的强大功能与灵活性使其成为大数据处理及实时数据分析领域的优选工具。
54 1
|
1月前
|
消息中间件 存储 大数据
大数据-数据仓库-实时数仓架构分析
大数据-数据仓库-实时数仓架构分析
86 1
|
18天前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
33 0
|
19天前
|
存储 设计模式 运维
Angular遇上Azure Functions:探索无服务器架构下的开发实践——从在线投票系统案例深入分析前端与后端的协同工作
【8月更文挑战第31天】在现代软件开发中,无服务器架构因可扩展性和成本效益而备受青睐。本文通过构建一个在线投票应用,介绍如何结合Angular前端框架与Azure Functions后端服务,快速搭建高效、可扩展的应用系统。Angular提供响应式编程和组件化能力,适合构建动态用户界面;Azure Functions则简化了后端逻辑处理与数据存储。通过具体示例代码,详细展示了从设置Azure Functions到整合Angular前端的全过程,帮助开发者轻松上手无服务器应用开发。
9 0
|
26天前
|
存储 运维 Oracle
常用的几种Oracle架构介绍
常用的几种Oracle架构介绍
14 0
|
2月前
|
供应链 负载均衡 数据库
软件架构一致性问题之分析代码修改的 Scalability如何解决
软件架构一致性问题之分析代码修改的 Scalability如何解决
36 1