`
cleverpartner
  • 浏览: 4565 次
  • 性别: 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?

分享到:
评论

相关推荐

    基于jsp的合同管理系统毕业设计(项目报告+源代码+数据库+部署视频).zip

    项目文档资料中,可能会包含需求分析、系统设计、数据库设计、接口定义等关键文档,这些都是理解系统架构和功能的重要参考。需求分析详述了系统的目标和用户需求;系统设计则描绘了软件的总体结构,包括模块划分、...

    巨链数据库(BigchainDB):一个可扩展的区块链型数据库(草稿)

    BigchainDB建立在一个现有的分布式数据库之上,因此大部分代码继承了企业级加固的代码。可扩展的容量意味着合法约束的合同和证书可以直接存储在区块链数据库中。 4. 权限管理: BigchainDB的权限系统支持配置从私有...

    javaweb实现的邮件收发系统(含数据库).zip

    在JavaWeb领域,开发一个邮件收发系统是一项常见的任务,尤其当涉及到企业级应用时,邮件服务通常是必不可少的通信手段。本项目“javaweb实现的邮件收发系统(含数据库).zip”提供了完整的解决方案,它包括了后端...

    邮件系统mysql数据库设计.zip

    10. **权限和角色表**:对于企业级邮件系统,可能需要实现用户角色和权限管理,包括`role_id`(角色ID)、`role_name`(角色名称)、`permissions`(权限列表)以及`user_role`表来连接用户和角色。 以上设计旨在...

    本科毕业设计-期末大作业-基于SSM+mysql的邮件管理系统.zip

    【标题】"本科毕业设计-期末大作业-基于SSM+mysql的邮件管理系统"是一个针对本科学生的毕业设计项目,旨在让学生实践并掌握企业级Web应用开发技能。该项目选择了SSM框架(Spring、SpringMVC、MyBatis)作为核心技术...

    [计算机项目]基于asp的企业人事管理系统设计与实现(源代码+项目报告).zip

    【标题】:“基于asp的企业人事管理系统设计与实现”是一个典型的计算机项目,主要涉及使用ASP(Active Server Pages)技术构建一个企业级的人事管理平台。这个系统不仅提供了源代码,还包含了一个详细的项目报告,...

    开源博客系统大全.pdf

    【开源博客系统详解】 开源博客系统为个人和组织提供了创建和管理在线日志或网站的便利工具。这些系统通常提供了一系列的功能,使用户能够轻松发布内容、管理评论、定制外观,并与其他博客进行互动。以下是一些流行...

    基于java的聊天系统的设计于实现(系统+论文).rar

    【标签】:“java”表示系统的核心开发语言是Java,这是一种广泛应用于企业级应用、Web服务和移动开发的语言,具有跨平台和丰富的库支持。"毕业设计"表明这是某个学术项目的一部分,通常由高校学生完成,以展示他们...

    企业合同管理系统.rar

    Java作为一门面向对象的编程语言,以其平台无关性、安全性和高性能等特点,在企业级应用开发中占据重要地位。Java JSP是Java Web开发中的一个重要组件,它允许开发者在HTML页面中嵌入Java代码,实现动态网页的生成。...

    信息系统项目管理师复习提纲

    - 支持企业级的业务流程重组。 #### 信息系统集成分类 - 技术集成、业务集成、组织集成。 #### 设备系统集成 - 将各种设备(如计算机、网络设备等)集成到一个系统中。 #### 结构化开发方式的特点 - 分阶段进行,...

    struts+hibernate+mysql站内邮件系统

    《Struts+Hibernate+MySQL构建的站内邮件系统详解》 在互联网应用中,站内邮件系统是提高...它不仅提供了完整的邮件功能,还展现了良好的架构设计和文档支持,对于学习和实践企业级Java应用开发具有很高的参考价值。

    OA办公系统规划项目方案计划需求分析.docx

    【OA办公系统规划项目方案计划需求分析】 OA(Office Automation)办公系统是一种...通过细致的需求分析,开发团队能够明确设计目标,确保系统满足实际业务需求,同时考虑到中小企业成本效益,提供定制化的解决方案。

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足信息处理的需求。 2、 系统的开放性和系统的可扩充性:系统在开发过程中,应该充分考虑以后的可扩充性。...

    联机测试系统

    Java以其跨平台性、稳定性和强大的库支持闻名,是开发大型企业级应用的理想选择。 5. **build.bat**:这是一个批处理文件,通常用于自动化构建过程,如编译源代码、打包和生成可执行文件。这表明开发者可能使用了...

    PHP新闻发布系统源码

    2. **数据库设计**:PHP新闻发布系统的核心是数据库设计,通常使用MySQL等关系型数据库来存储新闻数据,包括新闻标题、内容、发布时间、分类、作者等信息。数据库设计应遵循正常化原则,确保数据的一致性和减少冗余...

    ASP.NET公文管理系统的设计与实现(源代码+论文).zip

    通过这个公文管理系统,开发者可以深入理解ASP.NET Web应用程序的开发流程,学习如何利用.NET框架构建高效、可扩展的企业级应用。对于IT专业人员来说,这是一个很好的实践案例,有助于提升实际项目开发能力。同时,...

    基于Java的Lerx开源网站内容管理系统(CMS.ext).zip

    综上所述,Lerx CMS是一个功能全面、技术先进的Java CMS解决方案,适用于各种规模的网站建设和管理,无论是个人博客还是企业级门户,都能从中受益。通过了解其核心技术、特点和开发流程,开发者可以更好地利用Lerx ...

    VB中大迅通合同统计系统(论文+源代码).zip

    它可以让你看到实际项目中的代码结构、数据库操作、控件事件处理等实际应用,有助于提升编程和系统设计能力。 6. 论文部分: 论文部分可能涵盖了系统的需求分析、设计思路、实现技术以及测试结果等内容,对于理解...

    ASP网站CMS程序源码——SHUGUANG CMS企业网站管理系统实例开发.zip

    通过学习和研究SHUGUANG CMS的源码,开发者不仅可以掌握ASP编程技巧,了解Web应用程序的架构设计,还能深入理解CMS系统的运作机制,这对于提升Web开发能力,尤其是对企业级网站的构建和管理具有很高的实践价值。

    ASP网站CMS程序源码——SHUGUANG CMS企业网站管理系统实例开发.rar

    通过学习和研究"SHUGUANG CMS企业网站管理系统"的源码,开发者不仅可以提升ASP编程技能,还能了解企业级CMS系统的架构和设计模式,为自己的项目开发积累宝贵经验。同时,这也是一种实践学习的好方式,有助于将理论...

Global site tag (gtag.js) - Google Analytics