在上一篇文章中,我简单的描述了一下PaaS架构中面临的一些问题,接下来会描述更多问题,同时也会在文章的最后浅谈一下我们的解决方案.
动态拓展,是数据访问层在运行时,甚至是在二次开发中,才会遇到或者需要解决的问题,它很重要,却不一定如它的重要性那样迫切.在服务层面,我们为了保持架构的拓展性和可维护行,自然而然想到SOA,想到了服务的切分.那在数据层面的,为了保持库的简洁,易维护,同时为了存储海量数据,我们自然而然的要对库做切分,需要分库分表,库该如何切分,这个看似很简单的命题(不外乎就是把本来在一个库中的数据放入多个库中,同时把本来放在一个库中的表放在多个库中),但是实际使用中,这会给开发带来不可避免的麻烦.
第一个大麻烦:跨库查询.所谓跨库查询是指有也业务需求情况下,我们的一次查询,必须从多个数据库获得数据,但是大家都知道传统的关系型数据库对切分的容忍性是很低,基本不支持跨库的查询,最头疼的是,根据数据分组的查询条件,连接方式及jion的条件及分页的不同,获取特定条件下的特定数据!如果解决这个问题呢?我们想了很多种解决方案,最理想的貌似是淘宝的MyFox(参见
http://www.programmer.com.cn/7578/),它为程序员开发提供了良好的编程接口,而且几乎是透明的,貌似是完美的解决方案,但是他们实现的代价可能过大,也许需要一个庞大的团队来维护他们代码,才能保证功能正确.对于很多企业,这可能是不现实的,无论是自己实现,还是使用他们开源的框架,都有点令人不寒而栗的感觉,技术复杂到一定程度,已经很难为效率服务!在我们的数据访问层中,我们坚持了几项基本原则:
- 1.以最简单,最小的代价实现目标.
- 2.不做我们不擅长做的事情(不帮我们的查询做跨库的产讯拼接).
- 3.程序员编程友好,我们希望程序员压根不知道他们在坐跨库查询.
依据以上的几条,我们采用了"共享中心"的设计方案.
何为共享中心呢? 共享中心就是我们数据共享的地方!
和谁共享呢?当然是我们不同应用间共享数据!
最终我们只在我们的数据访问层增加了一个方法就获得了如下的效果:
- 1.跨库查询对程序员是透明的,我们的数据访问层会智能检测出该查询是否需要访问共享中 心而动态路由到共享中心对数据进行关联查询?
- 2.共享中心依然是按我们的分库分表原则进行的.
- 3.共享中心是可以动态替换的.
我们使用的方式是,让一些关键表的关键列被动态插入到共享中心,我们的数据访问层提供了对数据的监控,我们能方便的监控一些列的改变,从而保证共享中心数据被半实时同步更新!当然这只是实现共享中心数据同步的一种方案,具体不同的应用中,可采用不同的同步方案.我们只能保证在可见时间后,查询才会有效,(新插入的数据才会被查询出来,一般在2s-3s),但是这个结果我们完全能接受,因为需要跨库查询的地方,一定是复杂查询,而复杂查询伴随关键数据新增和修改的几率很小.
希望这篇文章能帮助跨库查询的朋友,我会在接下来的文章中陆续介绍遇到的问题和解决办法,最后会详细介绍我们数据访问层的实现方案!
分享到:
相关推荐
SaaS、PaaS及多租户数据管理,SaaS、PaaS及多租户数据管理
该平台基于多租户架构,通过提供丰富的开发工具和支持,帮助企业及第三方供应商构建强大、可靠且可扩展的在线应用。 **Force.com的关键功能**: 1. **强大的定制能力**:不仅支持界面的定制,还包括工作流、表单等...
主要功能(多租户管理、多主机管理、web shell功能、文件系统、应用管理、ci/cd 持续集成功能、docker 镜像管理、mysql web 操作控制、 数据备份功能 分为文件 和数据库备份 可以备份到 ftp oss 和mysql 数据库、...
弹性多租户是PaaS的一个重要特性,允许多个组织或项目共享同一基础设施,但彼此之间数据隔离,确保数据安全。 2. PaaS平台汇总 国内外的PaaS平台各有特色,国外如Google App Engine、Microsoft Azure App Service、...
平台采用兼容性最佳的技术内核,支持多租户、自动化运维和跨云部署,与VMware vSphere、vCloud、OpenStack等IaaS平台无缝对接。 1.1.2 基础服务 基础服务是PAAS平台对外提供计算和存储能力的关键。它包括弹性云主机...
PaaS平台解决了开发和运维都关注的问题,包括开发者关注的问题,如单/多租户、开发语言和开发环境、持续集成/交付、单点登录/身份联合、角色管理/目录服务等;IT管理员关注的问题,如公有/私有云环境、自动扩展、高...
他从IaaS单租户大数据产品架构开始,逐步介绍了MaxCompute PaaS多租户架构、多租户隔离实践、逻辑隔离、物理上分散的集群、统一的数据资源视图、统一的权限管理模型等内容。 IaaS单租户大数据产品架构 IaaS单租户...
多租户模式是PaaS云平台的另一个重要特点,它允许一个平台上的单个实例为多个租户提供服务。在这种模式下,不同的租户可以共享同一平台资源,但是彼此之间是隔离的,这样既保证了安全性,又提高了资源的使用效率。 ...
### PAAS平台问题知识库概览 #### 一、咨询类 **1.1 PaaS平台使用咨询** ...这些内容覆盖了PaaS平台的咨询、技术支持、故障解决及数据服务等多个方面,旨在帮助用户更好地理解和使用PaaS平台的各项功能和服务。
总结,云计算PaaS平台总体设计说明书旨在构建一个全面的开发和运行环境,通过集成多种服务和工具,为企业提供高效、安全、易用的云上开发体验。其设计考虑了开发、运行、管理等各个层面的需求,以适应不断变化的业务...
【标题】"基于SaaS的云计算工作流中间件与大型企业管理云开发实战及PaaS平台下多系统生成" 本课程深入探讨了SaaS(Software as a Service)在云计算领域的应用,特别是如何利用SaaS构建大型企业的管理云系统。SaaS...
多租户架构在云计算领域中扮演着核心角色,尤其是对于Software as a Service (SaaS) 和 Platform as a Service (PaaS) 提供商而言。本文将深入剖析SaaS提供商Salesforce如何利用多租户模式实现其服务的高效运行和...
PaaS平台通常支持多组织和多租户,以适应不同业务系统的需求。在公有云环境下,基于PaaS的应用可能更倾向于SaaS模式,而在私有云中则不一定。PaaS并非实现SaaS的必要条件,但可以简化SaaS应用的开发和部署。 此外,...
### 企业PaaS通用能力平台...综上所述,企业PaaS通用能力平台为企业提供了强大的技术支持和服务,不仅促进了业务的快速发展,还提升了企业的竞争力。随着技术的不断进步,未来PaaS平台将在更多领域展现出其独特价值。
强大的工作流中间件保证了系统流程的稳定运行,自定义的工作流中间件也能够根据paas平台的需要而进行调整,并且在课程中讲解了工作流反向同步平台组织机构的功能,工作流提供了RMI服务,从而实现了分布式的部署,...
几个角度介绍一下PaaS平台,基于K8S与Docker构建轻量级平台叫做ECP,就是弹性计算平台。我们知道刚才马俊讲的CMP,更多是在IaaS这一层面的,IaaS这一层面很多工作在主机、存储、网络上。到PaaS这一层面,大家对PaaS的...
2. 数据加密:保护云平台上的数据安全。 3. 防火墙和入侵检测:保护云平台免受恶意攻击和入侵。 PaaS云平台的部署和管理主要包括以下几个方面: 1. 云平台监控:实时监控云平台的运行状态和性能。 2. 资源分配:...