最近在项目里面遇到一个比较难以解决的问题,简单的说就是查询问题。
某一张表的数据量比较大,很多业务都会根据条件来查询相关的数据,查询主要分为两类,一类是业务查询,能够根据指定的条件查询出相关的数据,数据量比较小,查询速度快,一类是后台查询,偏向数据分析,特点是查询耗时长,查询数据量比较大。
由于大量系统访问这个数据库,那么对数据源连接的实时性要求就比较高,如果后台查询大量占用数据源的连接,会影响到外部业务,从而影响业务功能的稳定性。
如何解决这个问题,在一般的情况下,我们首先会考虑设置一个合理的超时时间,由于业务查询都是大多是根据关键字查询,耗费时间都会在几十毫秒之下,很少会有大量长耗时的sql,后台的查询耗时比较长,如果设置较小的查询超时时间,会导致无法查询出来结果。那么就根据后台的查询耗时的平均时间,设置一个合理值。这种做法相对来说比较简单,但是会有潜在的风险。可能在默写特殊情况下,业务的查询也会存在热点数据,就是根据这些业务关键字的查询普遍耗时比较长,如果业务系统短时间内大量的热点数据查询,则会占用大量的数据源连接,从而影响正常的业务。尤其是在查询系统无法评估有那些潜在的长耗时查询的时候,系统就处于这种不可预测的有风险的阶段。
第二种方案,就是简单的区分这两种查询。我们先解决的问题是后台查询超时的问题,如果采用上面的方案,则会影响其他的业务系统。那么可以考虑把影响面局限于后台查询。把问题所涉及到的关注点进行分离。就是长耗时和短耗时的问题,那么就配置两个数据源,一个负责提供给业务系统,超时时间设置短一点,连接数设置大一点,一个负责提供给后台查询系统,连接数设置小一点,超时时间设置长一点。通过这种方式,能够把缩小影响面,也能够解决目前的问题。
从上面的一个简单的案例分析,在任何一个系统里面,都存在矛盾的两个方面(也可能存在多个方面)。解决这个矛盾有两个思路,第一个思路是通过两方对话和博弈使其达到一个均衡的过程。在不同的维度进行平衡,比如稳定性和复杂性,安全性和简单性,从不同的角度去考虑,通过加权和降权的方式使其达成一个平衡。还有一个考虑的思路就是对矛盾进行分离,单独进行处理,就是所谓的关注点分离。
类似上面的案例还有很多,我们所说的分层模式,也是把一个大系统中不同层面的所具备的特性不一致,并且有很多矛盾。拿我们最经常使用三层模式:web层,biz层,dal层举例,web层变化非常频繁,同时要快速的满足需求,biz层变化相对来说比web层少,而dal层则不容易变化。分层模式主要是利用系统中不同关注点所面对的问题,每个层次的特性明显不同,这些都是可以才哟过分层的思路来设计。从系统分层到架构分层,都可以看到其背后隐藏着系统内部的矛盾。
不止在IT领域的系统设计存在这个问题,在组织架构上也面临着同样的问题。大公司都会存在一套特定的业务流程满足公司内所有的部门。但有一些部门涉及到的业务要求快,有一些业务要求稳,这两个就是矛盾。这也是金融互联网公司内部面临的主要问题,互联网要求简单,快速,创新,金融则是复杂,稳定,保守。如果解决这些矛盾,也是这类公司面临的问题。
--ps,这里发一个消息:有兴趣来成都支付宝(java)的同学,站内联系我
分享到:
相关推荐
TRIZ的核心在于解决矛盾,即在技术系统中寻找并解决物理矛盾和技术矛盾。 矛盾分析是TRIZ的基础,它分为四个主要部分: 1. **矛盾的概念及分类**:矛盾无处不在,包括物理矛盾和技术矛盾。物理矛盾是指系统中一个...
这个理论体系旨在通过系统化的方法帮助人们找到解决问题的新思路,从而推动技术创新。 矛盾矩阵是阿奇舒勒基于对大量专利分析的基础上构建的,它将技术矛盾按照40个通用工程参数进行分类,并给出了76种标准解。这些...
操作系统课程设计中的Spooling(Simultaneous Peripheral Operations On-Line)技术是一种早期为解决I/O设备速度慢与CPU快速处理之间矛盾而提出的解决方案。在现代操作系统中,它仍然是一个重要概念,尤其是在多用户...
在更实用的层面上,TRIZ可以被看作是一套分析工具,帮助检测系统中的矛盾,通过消除或缓解矛盾来表达和解决设计问题。 TRIZ的理论基础包括以下几点: 1. 创造性问题解决是一种可以通过学习和管理来掌握的能力,而...
首先,问题被定义为需要研究解决的疑难和矛盾,是现实与理想之间的差距。无论是技术发明、市场销售、生产制造、人力资源、研发设计还是供应商管理,所有的工作环节都可以视为一系列问题的集合。这意味着每个部门都...
TRIZ理论中的矛盾解决原理为新产品设计提供了思路,发现和消除矛盾是产品进化和发展的主导气力。进而又把矛盾分为治理矛盾、技术矛盾和物理矛盾3个类型。而找到矛盾、正确地定义矛盾是解决题目的关键。例如针式...
- **抓住主要矛盾**:在处理多重故障时,优先解决最主要的问题,其他次要故障可能随之解决。 2. **电脑维修的基本方法**: - **观察法**:仔细观察电脑的环境、硬件、软件状况及用户操作,以发现异常行为和可能的...
系统集成项目管理工程师案例分析部分是针对这一专业领域的重要学习资料,主要涵盖了2011年的内部培训内容。这份资料的目的是帮助考生理解和掌握在实际项目管理中可能遇到的问题,通过案例分析提升解决复杂问题的能力...
而物理冲突则是在系统内部某个子系统或部件上出现的相反需求,比如在缩小电子设备体积的同时保持其散热能力。 解决技术冲突的过程通常遵循TRIZ理论,TRIZ是一种基于大量专利分析的创新方法论。它包括将问题进行领域...
智能配电系统在航天器中扮演着至关重要的角色,它负责管理和分配航天器内部的电力资源,确保各个子系统稳定运行。传统的配电系统通常采用机械继电器进行控制,但随着技术的发展,固态功率电子开关(SSPC)因其高速...
【变革案例与解决思路】 - 郭士纳对IBM的改造展示了如何通过组织和流程再造提升企业竞争力。 - 杜邦公司的变革则突显了从个人化管理向职能管理转变的重要性。 - 斯隆对通用汽车的改造则说明了从职能化到功能分层的...
这篇论文的研究成果对于分布式实时系统的开发和优化具有重要的指导意义,为解决安全性和实时性之间的矛盾提供了新的思路。对于从事分布式系统开发、特别是需要考虑安全性问题的工程师来说,该研究提供了一种有价值的...
推进人权事业发展要坚持协调推进、合力推进,这反映了整体观念,要求我们既要看到各个部分的作用,又要注重系统内部结构的有序性和优化,确保各种人权的相互协调和平衡发展。 再者,矛盾的普遍性与特殊性相互联结的...
2. **人力资源信息安全**:缺乏专业的人才储备库,导致内部矛盾频发。 3. **管理流程不规范**:人力资源管理成本持续上升,影响组织管理和人力运用的合理性。 三、**招聘管理系统功能实现** 为了解决上述问题,...
这三种创新设计实例都体现了机械系统设计的革新思路,即通过简化结构、优化运动方式和提高能量转换效率来克服传统设计的局限。这些实例不仅为机械工程提供了新的解决方案,也为其他领域的创新设计提供了启示,表明了...
相关分析可以帮助我们理解系统内部的相互作用,为问题的解决提供依据。 接着,作者引入了可拓变换的概念,这是可拓学的核心技术之一,旨在通过变换事物的属性、状态或结构来创造新的可能性。可拓变换包括强制建立、...
云计算以其特有的优势,如资源池化、自动化管理、弹性扩展和安全性,为解决这些问题提供了新的思路。 医疗行业信息化的三个层面包括医院管理信息化(HMIS)、临床管理信息化(HCIS)和区域医疗卫生服务(GMIS)。...
为解决这些矛盾,新修订的《建筑给水排水设计规范》推荐水表出户,即设置在户外以便集中读数或采用智能化水表如远传水表和IC卡水表。出户方式有多种,如室外水表井、楼梯休息平台、水表间等,每种方式都有其优缺点,...
中国企业面临冗员与人才短缺、新老创业者矛盾、理念与推进系统不匹配等问题。解决这些问题需要建立有效的绩效考核体系,构建富有竞争力的薪酬结构,拓宽职业通道,以及注重知识型员工的管理和经营者激励约束机制。 ...
在《某集团组织变革思路培训教材》中,提出了组织变革的系统思考,强调了组织变革不仅仅是局部调整,而是需要从全局出发,考虑战略、功能定位、组织架构、公司治理结构、分权体系以及业务流程等多个层面的协同改革。...