`
cleverpartner
  • 浏览: 4416 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

企业级大型核心业务系统架构设计 -- 数据库架构 (草稿)

阅读更多

此贴仅为了记录偶的初步设计思想,是为了防止将来忘掉,供个人知识积累用。其实偶希望找一个个人Wiki的,但没有,所以只能通过Blog自己记录一下。

 

企业级大型核心业务系统的特点:

1、业务非常复杂,每个交易将有大量涉及到N多表;

2、每天晚上都会有大量的批处理任务,例如:跑出保单状态,并更新,只能在主数据库中更新,因为需要回写状态;

3、对外提供N多接口,支持N多外围系统的应用,如:呼叫中心、网销等并发非常大的外围系统;

4、提供7X24小时的应用,在上班时间内部用户使用较多,而下班后可能网络用户使用较多,这时要求系统提供7x24服务。

 

对于这些问题数据库架构将是一个非常大的挑战,因为应用服务器可以通过无限的扩展应用服务器来达到压力均衡,如果应用服务器越多对数据库的压力越大,不管怎样数据都必须落地在数据库中,那么数据库的架构就需要:

1、如果采用传统的双机热备架构,即:一台无比强大的小型机支持应用,这样可能出现问题:

     1)单台机器即使满配也可能无法支持应用,例如:595满配就是64颗CPU,单对于支持10000+以上同时在线的系统,如果应用设计稍微不合理(应用非常复杂,难免有设计不是十分合理的情况),那么单台机器将无法支撑;

 

如果不采用双机热备,那么可以采用RAC+DataGuard,RAC可以无限扩展,但偶曾经遇到一次RAC使用的失败例子,其中先出现了内存问题,导致频繁宕机,后面有出现RAC之前同步消耗而外20%的性能,加大的通讯量。此次问题之后放弃使用RAC了,但由于应用的复杂度还不是特别大,因此单机能撑住。但面临单机无法支持的情况,这时只能选择可扩展的架构——RAC。

 

RAC设计中尽量减少各个实例之间的内存数据通讯,通讯的产生就是来自于多台实例中都缓存了同一张表的数据,那么这样表的数据更新了就会出现同步。那么最好是通过应用的方法避免同一张表的数据在多台机器上,因此选择RAC架构,就必须涉及到应用架构的一定调整,偶想到的应用调整:

1、按照模块建立不同的DataSource配置,对于这个模块都采用这个数据源;

2、在Spring配置中为每个模块配置一个父类,避免子类在程序中选择;而且注意这么好的配置肯定只能是生产环境,而测试环境可能还是只有一台机器,那么基于封装变化的设计原则,那么这些数据源的选择就是必须在架构层面控制;

3、ETL、Job都要注意选择特定的机器来执行对应的应用,避免数据表缓存的同步。

注意:数据源的配置需要特殊设计,即将Oracle的链接配置为Service方式,将多台机器的顺序不同,例如:3台机器,A/B/C,那么数据源1的优先顺序为ABC,数据源2的优先级为BCA,数据源3的优先级为CAB。注意:第一台机器的顺序重要,之后的仅是在第一台坏掉的时候自动选择后面的机器,以防止数据库的单点故障。

 

待确认问题:RAC架构的跨Instance的事务是否支持?

问题起因:由于按照模块设定数据源,那么涉及到一个功能要更改多个模块的数据时一个Spring的事务是否可以管理?或者Oracle是否支持多台机器之间的事务?或者是要启动XA?

具体的原因:Spring如果配置多个DataSource,而DataSource的配置可能是在应用服务器(如:WebLogic或WebSphere)上,应用服务器的DataSource可以配置为Service模式,但由于机器的顺序不同,那么一定会配置多个DataSource,那么Spring的事务管理是否支持跨DataSource事务,是否要使用JTA?

分享到:
评论

相关推荐

    系统数据库设计文档.doc

    XXX展示系统 数据库设计文档 "文件状态: "文件标识: " " "[ ]草稿 " " " "[]正式发布 " " " "[]正在修改 " " " " "当前版本: "V0.1 " " "作者: " " " "完成日期: "2020-8-22 " 1 文档介绍 1.1编写目的 作为软件...

    毕业设计-基于springboot-商务安全邮箱邮件收发-设计与实现(源码 + 数据库 + LW + 演示视频).zip

    详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行了功能测试,并对测试结果进行了分析总结,得出系统的不足及需要改进的地方,为以后的系统维护提供了方便,同时...

    311142040-16172-34B_数据库系统1

    2. 请将答案全部填写在答题纸上 3. 考试结束,请将试题纸、答题纸、添卷纸和草稿纸一并交给监考老师 1. Multiple Choices. (Total m

    OA系统设计方案.doc

    炎黄Eclipse 4) 通信协议:http: 5) 客户端浏览器:IE9以上、Chrome 3 总体结构设计 1 系统体系架构 图2-1 OA系统体系架构图 2 系统功能架构 图2-2 OA系统功能架构图 3 系统部署架构 4 系统软件架构 5 核心业务对象...

    软件项目测试验收方案-草稿 (2).pdf

    软件项目测试验收方案-草稿 (2).pdf软件项目测试验收方案-草稿 (2).pdf软件项目测试验收方案-草稿 (2).pdf软件项目测试验收方案-草稿 (2).pdf软件项目测试验收方案-草稿 (2).pdf软件项目测试验收方案-草稿 (2).pdf...

    2数据库设计文档.doc

    XXX人资信息管理系统 数据库设计文档 "文件状态: "文件标识 " " "[ ] 草稿 ": " " "[ ] 正式发布 " " " "[ ] 正在修改 " " " " "当前版本 "1.0 " " ": " " " "作 者 " " " ": " " " "完成日期 "2014-12-1 " " ...

    5数据库设计文档.doc

    XXX人资信息管理系统 数据库设计文档 "文件状态: "文件标识 " " "[ ] 草稿 ": " " "[ ] 正式发布 " " " "[ ] 正在修改 " " " " "当前版本 " " " ": " " " "作 者 " " " ": " " " "完成日期 "2014-12-1 " " ": ...

    数据库课程设计-模块设计报告.doc

    信息管理系网站 数据库设计报告 "文件状态: "文件标识:"Company-Project-SD-DATABASE " "[ ] 草稿 " " " "[ ] 正式发布 " " " "[ ] 正在修改 " " " " "当前版本:"X.Y " " "作 者:"王裕辰、计卫强、张瑞文 " " ...

    数据库设计报告的草稿

    { 项目名称 } 数据库设计报告 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 文件标识: Company-Project-SD-DATABASE 当前版本: X.Y 作 者: 完成日期: Year-Month-Day

    CRM数据库设计.doc

    客户关系管理系统 数据库设计报告 "文件状态: "文件标识:"Company-Project-SD-DATABASE " "[ ] 草稿 " " " "[ ] 正式发布 " " " "[ ] 正在修改 " " " " "当前版本:"X.Y " " "作 者:" " " "完成日期:"Year-Month...

    软件项目运维支持方案-草稿.docx

    软件项目运维支持方案-草稿.docx软件项目运维支持方案-草稿.docx软件项目运维支持方案-草稿.docx软件项目运维支持方案-草稿.docx软件项目运维支持方案-草稿.docx软件项目运维支持方案-草稿.docx软件项目运维支持方案...

    java-springBoot-Mail 完整服务架构-邮箱项目_java微服务架构

    基于springBoot 开发的完整的邮箱客户端系统 ; 资源里包括以下内容: 一、源码类 1)springboot 实现的三层架构源码 & 微服务 二、文档类 1)Mysql - 数据库表初始化脚本 2)技术实现流程架构图 3)项目介绍文档等 ...

    以和谐广场为核心的商业综合体建造标准建筑规划设计标准草稿-.pdf

    以和谐广场为核心的商业综合体建造标准建筑规划设计标准草稿-.pdf

    软件项目数据库设计报告.doc

    { 项目名称 } 数据库设计报告 "文件状态: "文件标识:"Company-Project-SD-DATABASE " "[ ] 草稿 " " " "[ ] 正式发布 " " " "[ ] 正在修改 " " " " "当前版本:"X.Y " " "作 者:" " " "完成日期:"Year-Month-Day...

    3-数据库设计报告.doc

    { 项目名称 } 数据库设计报告 "文件状态: "文件标识:"Company-Project-SD-DATABASE " "[ ] 草稿 " " " "[ ] 正式发布 " " " "[ ] 正在修改 " " " " "当前版本:"X.Y " " "作 者:" " " "完成日期:"Year-Month-Day...

    311142040-18192-32B_数据库系统1

    2. 请将答案全部填写在本试题纸上 3. 考试结束,请将试题纸、添卷纸和草稿纸一并交给监考老师 1. SQL commands assist with quer

    311142010-18192-32A_数据库系统1

    2. 请将答案全部填写在本试题纸上 3. 考试结束,请将试题纸、添卷纸和草稿纸一并交给监考老师 2. An insertion operation will〔

    311142040-17182-28A_数据库系统1

    2. 请将答案全部填写在本试题纸上 3. 考试结束,请将试题纸、添卷纸和草稿纸一并交给监考老师 1. What does ACID stand for in t

    311142040-16172-34A_数据库系统1

    2. 请将答案全部填写在答题纸上 3. 考试结束,请将试题纸、答题纸、添卷纸和草稿纸一并交给监考老师 1. Multiple Choices. (Total m

    软件项目人员培训方案-草稿.pdf

    软件项目人员培训方案-草稿.pdf软件项目人员培训方案-草稿.pdf软件项目人员培训方案-草稿.pdf软件项目人员培训方案-草稿.pdf软件项目人员培训方案-草稿.pdf软件项目人员培训方案-草稿.pdf软件项目人员培训方案-草稿....

Global site tag (gtag.js) - Google Analytics