分布式系统的架构与优化
- 格式:pptx
- 大小:2.12 MB
- 文档页数:32


分布式系统的架构思路
一、前言
在计算机领域,当单机性能达到瓶颈时,有两种方式可以解决性能问题,一是堆硬件,进一步提升配置,二是分布式,水平扩展。当然,两者都是一样的烧钱。
今天聊聊我所理解的分布式系统的架构思路。
二、分布式系统的两种方式
平时接触到的分布式系统有很多种,比如分布式文件系统,分布式数据库,分布式WebService,分布式计算等等,面向的情景不同,但分布式的思路是否是一样的呢?
1.简单的例子
假设我们有一台服务器,它可以承担1百万/秒的请求,这个请求可以的是通过http访问网页,通过tcp下载文件,jdbc执行sql,RPC调用接口…,现在我们有一条数据的请求是2百万/秒,很显然服务器hold不住了,会各种拒绝访问,甚至崩溃,宕机,怎么办呢。一台机器解决不了的问题,那就两台。所以我们加一台机器,每台承担1百万。如果请求继续增加呢,两台解决不了的问题,那就三台呗。这种方式我们称之为水平扩展。如何实现请求的平均分配便是负载均衡了。
另一个栗子,我们现在有两个数据请求,数据1 90万,数据2 80万,上面那台机器也hold不住,我们加一台机器来负载均衡一下,每台机器处理45万数据1和40万数据2,但是平分太麻烦,不如一台处理数据1,一台处理数据2,同样能解决问题,这种方式我们称之为垂直拆分。
水平扩展和垂直拆分是分布式架构的两种思路,但并不是一个二选一的问题,更多的是兼并合用。下面介绍一个实际的场景。这也是许多互联网的公司架构思路。
2.实际的例子
我此时所在的公司的计算机系统很庞大,自然是一个整的分布式系统,为了方便组织管理,公司将整个技术部按业务和平台拆分为部门,订单的,会员的,商家的等等,每个部门有自己的web服务器集群,数据库服务器集群,通过同一个网站访问的链接可能来自于不同的服务器和数据库,对网站及底层对数据库的访问被分配到了不同的服务器集群,这个便是典型的按业务做的垂直拆分,每个部门的服务器在hold不住时,会有弹性的扩展,这便是水平扩展。 在数据库层,有些表非常大,数据量在亿级,如果只是纯粹的水平的扩展并不一定最好,如果对表进行拆分,比如可以按用户id进行水平拆表,通过对id取模的方式,将用户划分到多张表中,同时这些表也可以处在不同的服务器。按业务的垂直拆库和按用户水平拆表是分布式数据库中通用的解决方案。
分布式网络视频监控系统的架构王永利
分布式网络视频监控系统的架构
Architecture of Distributed Networked Video Monitoring System
互永
(中兴通讯股份有限公司,上海201203)
摘要:为满足基于TCP/IP的网络视频监控系统的设计要求,结合网络视频监控系统应用范围广、组网灵活等特点,提出了基于 TCP/IP的分布式网络视频监控系统的架构。具体方法是将H264、MPEG-4视频编码协议和流媒体技术应用到系统设计中,并将网络 视频监控整体系统设计分解模块化。该架构解决了实时性、并发流量、网络带宽瓶颈等问题,为将来与其他系统的组合应用提供了灵 活的开放性接口方案。 关键词:网络视频监控分布式TCP/IP H264 MPEG-4流媒体 中图分类号:TP391 文献标志码:A Abstract:In order to meet the design requirements of the networked video monitoring system based on TCP/IP and combining the features of networked video monitoring,e.g.wide range of application and flexible networking,the distributed architecture based on TCP/IP is proposed. In the design,H264,MPEG-4 video encoding protocol and stream media technologies are adopted。and the overall system is decomposed modu- larly.This architecture resolves the problems of real—time performance,concurrent flow,bottleneck in bandwidth of network,etc.,and pro. vides open and flexible interface scheme to compose with other systems in future. Keywords:Networked video monitoring Distributed TCP/IP H264 MPEG-4 Stream media
分布式系统架构中的数据一致性问题与解决方案
在当今互联网时代,分布式系统架构被广泛应用于各个领域,尤其是大型网站、云计算和物联网等。然而,分布式系统面临的一个核心挑战就是数据一致性问题。本文将探讨分布式系统中数据一致性问题的原因,并介绍一些常见的解决方案。
一、数据一致性问题的原因
1. 网络延迟:在分布式环境下,系统中的不同节点之间通过网络进行通信。由于网络延迟等原因,数据在不同节点之间的同步存在一定的延迟,容易导致数据一致性问题。
2. 节点故障:分布式系统中的节点数量通常较多,节点之间可能存在软件或硬件故障。节点故障会导致数据同步失败,进而引发数据不一致的问题。
3. 并发操作:分布式系统中的节点通常是并发运行的,多个操作同时对同一份数据进行读写操作,容易导致数据不一致的情况发生。
二、数据一致性问题的解决方案
1. 强一致性
强一致性要求系统中的所有节点在任意时刻都能够访问到一致的数据副本。为了实现强一致性,可以采用以下方法: (1)原子操作:将多个操作包装成原子性的操作,要么全部执行成功,要么全部执行失败。例如,可以使用分布式事务来保证数据一致性。
(2)主从复制:将数据分为主节点和从节点,主节点负责处理写操作,从节点负责复制主节点的数据并处理读操作。主节点和从节点之间通过同步协议保持数据一致。
(3)多数投票:在系统中的多个节点中,若有超过半数的节点达成一致意见,则视为数据同步成功。通过多数投票来保证数据的一致性。
2. 弱一致性
弱一致性允许系统在某一时间点上出现数据不一致的情况,但最终数据会达到一致。为了实现弱一致性,可以采用以下方法:
(1)最终一致性:系统允许一段时间内的数据不一致,但最终会通过一定的机制使得数据最终达到一致。例如,可以使用版本向量或向量时钟来记录和追踪数据的变更。
(2)基于时间戳:为每个操作添加时间戳,并根据时间戳进行数据的读写操作。通过时间戳来解决数据冲突和同步的问题。
No.4 Vo1.24 陕西科技大学学报 JOURNAL OF SHAANXI UNIVERSITY OF SCIENCE&TECHNOLOGY Aug.2006 ・115・
文章编号:1OOO一5811(2006}04--0115--05
应用性能模式改进分布式系统的架构设计
徐 冬 ,覃海宁
(1.南宁职业技术学院计算机与信息工程系,广西南宁530003;2.玉林师范学院职业技术学院,广西玉林
537000)
摘 要:分布式系统设计容易出现性能问题。作者讨论了如何应用性能模式分析分布式系统
的瓶颈、要求,并选择合适的设计模式完成了系统的架构设计。通过性能实践,研究了系统的
性能直觉、性能感知技能。结果表明,凭借性能模式能够实现既定分布式系统的性能设计目
标。
关键词:分布式系统;性能模式;设计模式;性能实践
中图分类号:TP302.1 文献标识码:A
0前言
分布式系统存在访问远程对象的延时和中间件的额外开销,同时它的业务还会出现大并发和大数据
量访问的情形,因此系统容易出现性能问题。这就要求在系统设计中进行多种选择的复杂组合,涉及对
象布局、通信频率、处理过程、数据量控制、线程使用、平台规模等。所以,系统设计师必须具备主动的性能
管理观念和良好的性能直觉。目前关于分布式系统性能优化的文献大多涉及实现技术特性的比较、实现
技术细节、部署配置调整、后期诊断完善等,而对系统架构这一实现性能目标成本收益比最高的阶段却缺
乏应用最佳的性能实践、良好的性能直觉和相关的设计模式讨论的内容。性能模式口]可以针对特定上下
文,提供性能设计的“最佳实践”,它是良好的性能观念和性能直觉的基础。用好性能模式可以缩短建立满
足系统性能目标的设计探索和揣摩过程。
1应用性能模式改进分布式系统架构设计,并通过设计模式实现架构的演变过程
在这里,性能模式处在比设计模式更高更抽象的层次。在系统没有建立起来的阶段,利用性能模式可