架构师提升篇:分布式系统中,如何提升系统性能?

在分布式系统中,平衡业务计算的压力分布,减少网络上的数据流动,是一种提升性能的手段,请看下面的例子。

1)案例背景

某“机械设计研究所”历史上在管理模式上采用传统的层次化垂直结构。但是近年来,随着用户对产品更新换代的要求越来越快、质量要求越来越高,在竞争日益剧烈、外部压力日益增大的形势下,该所在管理模型上重新定位,打破长久以来形成的垂直结构,形成一种趋向于水平集成的业务模型,使企业能更专注于自己的业务特长,在产品研发时,能更好地利用国内更先进的技术力量,以实现合作方异地协同设计。

为此需要构建一个基于互联网的符合合作方异地协同设计的信息管理平台,使得部件设计合作方能够在早期就介入产品的研发过程,及时获取产品信息和变更通知,并将相关的信息及时反馈到企业,缩短主要设计部门和合作方的沟通时间,提高合作方在新产品设计中的响应能力,实现各方共赢。这个合作方异地协同设计管理平台需要有下面一些特点:

具有开放性和可伸缩性,为实现产品的异地、异构设计提供强大支持。

需要实现业务与分布式数据源整合,

需要根据业务发展的需要,实现业务方法的重新编排

需要有效管理各合作方协同设计过程。

通过这个“合作方异地协同设计信息管理平台”,使研发工程中设计、制造、测试、维护等职能的综合协调,新产品开发更加有序和有效。

2)初步设计

本设计将面临如下挑战:

合作方的参与是不稳定的,系统需要具备可伸缩性的特点。

业务流程是不稳定的,会根据项目与合作方的特点加以改变。

合作方的数据格式具有多样性,是没有办法实施规范的。

异地合作的通信只能采用互联网,对带宽有一定限制。

合作设计信息量比较大,对性能有比较高的要求。

为了应对这些挑战,根据需求分析的要求,初步考虑系统采用面向服务的架构,该系统需要提供三个大的子服务:

项目管理与过程管理子服务(PM&PM);

工程图档与文档管理子服务(ED&DM);

配置管理与变更管理子服务(CM&CM)。

这三个子服务相互支持,共同完成合作方协同设计中项目管理、图档管理、版本管理以及图档修改串行化的业务要求。据此构建了初步的概念性架构。这个架构从业务层面来看,分成完全自治的三个子服务,并且让合作方的数据以服务的形式提供出来,使整个业务和数据具有很强的可变化性和可伸缩型,其初始架构关系如下图所示。

这个架构具有如下一些优点:

有利于协调不同的异构数据模型:由于合作方业务的复杂性,使得数据模型间语义与结构存在巨大差异。通过数据总线的集中管理与映射,有利于协调不同的服务领域间的异构数据模型,并且系统具有可伸缩性。

便于实现面向服务的集成(SOI):通过使用面向服务的架构来解决集成与互操作的问题,将有利于达到根据服务契约对传统系统进行包装,创建当前系统集成所需要的新服务的目的。

有利于应对业务的变化:当合作方或者业务发生变化的时候,只需要修改“服务编排”层的业务,就可以方便的实现变更。

本系统通过一个企业服务总线(ESB)和数据总线(Data Bus)统一管理数据使用者的权限、格式转换以及其它方面的问题,以确保数据的安全性和使用上的方便性。

针对这个案例来说,在合作方位置遥远、业务非常复杂而且繁忙时,把所有的服务都集中在中央服务中心是不合适的,这样会严重影响服务的性能。为此,把服务按照不同的级别进行分布式配置, 通过合理布局来解决性能问题,如图下所示。

在这个设计方案中,服务分成两个不同的层次:

中心服务:这种服务所处的位置在全局数据中心服务器上,其维护的状态是全局性的,更多的是关注各个合作方之间的协调的业务。在需要多个分布式服务站点参与时,中心服务中的服务职责可以居中协调共同完成业务处理。这种布局的好处在于:一般来说,在同一空间(合作方)中会有大量内部相互协调的操作,而合作方之间的协调在总量上要少得多,这就可以大幅度减少应用服务的网络流量,提高系统的整体性能。

栈服务:这种服务的所谓全局状态是有区域性的。例如在同一个合作方范围内,相当多的业务处理都是在内部进行的,其全局状态也只是指的这个合作方范围内而言。我们可以把这类服务(也可能是半服务)在物理上直接置于合作方本身的数据中心,至于这个合作方数据中心提供服务的方式是采用内网还是外网并不重要(大多数情况下这种处理都是置于内网)。

时间: 2024-10-12 12:48:51

架构师提升篇:分布式系统中,如何提升系统性能?的相关文章

架构师速成6.18-初中书单资料推荐

思维导图 你的第一本思维导图操作书 画出好成绩-通过思维导图提升分数 思维导图系列 知识管理 你的知识需要管理 面向对象 写给大家看的面向对象编程书 面向对象分析与设计 深入浅出面向对象分析与设计 软件设计 UML精粹 UML基础.案例与应用 Head First软件开发 领域驱动设计 写好代码 重构:改善既有代码的设计 代码大全 代码整洁之道 设计模式: 大话设计模式 head first 设计模式 版权声明:本文为博主原创文章,未经博主允许不得转载.

架构师速成7.6-高中书单资料推荐

速读速记: 如何高效阅读 10倍速影像阅读法 超右脑快速记忆法 项目管理: 敏捷开发的艺术 敏捷软件开发 硝烟中的Scrum 和XP 精益开发实战 走出软件作坊 人件 人月神话 黑客与画家 死亡之旅 企业架构: 企业应用架构模式 devOps: 持续集成:软件质量改进和风险降低之道 性能: 深入理解Java虚拟机 Java性能优化权威指南 版权声明:本文为博主原创文章,未经博主允许不得转载.

剑指架构师系列-Logstash分布式系统的日志监控

Logstash主要做由三部署组成: Collect:数据输入 Enrich:数据加工,如过滤,改写等 Transport:数据输出 下面来安装一下: wget https://download.elastic.co/logstash/logstash/logstash-2.3.2.tar.gz tar -zxvf logstash-2.3.2.tar.gz 在logstash-2.3.2目录下创建文件shipper.conf并配置: input { file { path => [ "/

7年iOS开发,自述通往架构师的修炼之路【精华篇】

前言: 本篇文章仅供大家参考学习以及在成为架构师的道路上应该掌握的知识点和经验.相信你在看完这篇文章后,你有一个明确的目标以及一个通往架构师路上正确的方向. 导读: 1.架构师应不应该写代码 2.为什么别人的系统总是那么烂 3.成为架构师最困难的门槛是什么? 4.如何更高效的学习? 5.面对目前流行的技术不知如何下手? 6.一家公司待久了,过得很安逸,但跳槽时面试碰壁? 7.觉得现在的技术基础感觉到很扎实,但就是自己的技术提升不上? 8.觉得自己很牛B,一般需求都能搞定,但是所学的知识点没有系统

Java架构师之路:从Java码农到年薪八十万的架构师,最牛Java架构师进阶路线

从Java码农到年薪八十万的架构师,资深架构师大牛给予Java技术提升学习路线建议,如何成为一名资深Java架构师? 对于工作多年的程序员而言,日后的职业发展无非是继续专精技术.转型管理和晋升架构师三种选择.架构师在一家公司有多重要.优秀架构师需要具备怎样的素质以及架构师的发展现状三个方面来分析 程序员如何才能晋升为优秀的高薪架构师? 希望通过本文让程序员们了解架构师的市场行情,了解架构师的发展前景,并帮助你更清晰地做出职业规划. 架构师在一家公司有多重要 架构师在公司中担当着「IT架构灵魂人物

15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程

* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat

java架构师课程、性能调优、高并发、tomcat负载均衡、大型电商项目实战、高可用、高可扩展、数据库架构设计、Solr集群与应用、分布式实战、主从复制、高可用集群、大数据

15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; color: #FF0 } 15套java架构师.集群.高可用.高可扩展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  clo

java架构师负载均衡、高并发、nginx优化、tomcat集群、异步性能优化、Dubbo分布式、Redis持久化、ActiveMQ中间件、Netty互联网、spring大型分布式项目实战视频教程百度网盘

15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; color: #FF0 } 15套java架构师.集群.高可用.高可扩展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  clo

全栈软件工程师和系统架构师的异同

看完后.发现.不用怕....因为程序员不会看完.只有"架构师"才有耐心看这么长的. 一 每个好架构师都是一位出色的程序员(卓越的程序员) 架构师,听起来是如此神秘的一个称号.尤其是在开发领域刚入门不久的菜鸟级程序员眼中,架构师都是高手,都是牛人,都是如此高高在上的存在. 不过,在搞了四.五年编程之后,程序员们往往早已失去了当年对这些"高级"职位的神秘感,甚至会对自己所在项目的架构师抱怨不已,背后里称他们是一群水王.所以有江南白衣曾撰文述说:"国内的架构师到

架构师Jack专访:全面认识软件测试架构师

◇ 测试架构师的职责 测试的职业通道基本是管理线和技术线两条路. 管理线主要的职责:更多是项目管理和资源管理. 技术线主要的职责:更多是技术管理和业务知识. 软件测试架构师更多就是技术线的带头人.管理线的人更多的工作语言是:绩效,考评,时间点,质量等. 技术线的更多工作语言是:技术规划,技术可行性,技术价值,技术共享性,解决什么问题等. 软件测试架构师更多是一种角色,而不是一种title,是测试技术上和测试经验上有影响力的人.什么是有测试影响力的人呢?就是你没有任何官位,你不是任何人的行政上级,