刚刚翻阅一份老贴子,其中有一个回贴提到老马说过“分布式系统的最佳应用,就是不使用分布式”这句话,真的是感同身受。btw,搜了半天,竟然再也找不到这篇回贴了。我也没有去验证这话是否是老马说的,权当它是真的吧。
说起分布式这个东西,可能更多的时候带有行业特色。传统的C/S时代,因为当时互联网尚不发达的原因,形成一个个的信息孤岛,还是需要分布式的应用的。比如全国性的信息系统,需要在各省、各市分别开发一套内部系统,来统一进行数据的交换。而在互联网已经足够发达,B/S一统天下的今天,竟然还会有分布式系统的出现,就真的是莫名惊诧了!
典型的应用,可能就是国内的银行和电信系统。我没有做过这方面的项目,但可以判断出,它们是曾经采用过分布式应用的。如各省分行/分公司是一套独立的系统,通过中间件与总行和其它分行进行数据交互。而近年新成立的商业银行,它的信息系统就应该是集中式的了。
■■
分布式的缺点很明显,不便于进行升级和维护、不便于进行统一的安全控制、信息交互容易出错、形成信息孤岛很难提供决策支持......
我现在负责的一个电子政务系统,就被迫采用了分布式,深受其苦。采用分布式的原因,在于政务系统的特殊性,对安全性要求比较高,甚至要求内外网物理隔离,而政务系统必须置于内网,这就任谁也没有好办法了,就是用VPN专线客户也是不会同意的。而这套系统对公司是如此的重要,如此的有钱可赚,那也就没的商量了,上!
现在的情况时,北京这边总部是一套系统,各省市是独立的一套系统,通过数据交换中间件定时进行数据交互。与其他分布式系统不同的是,我们这是一个循环的工作流系统,举例讲,用户提交一份数据,先到市级系统,市级再转到省级,省再转到中央,中间任何一个环节都有可能将用户的请求驳回,用户再反复提交,直到最终审批通过为止。因此一份申请,可能要流转十几次,才能最终通过。在反复的数据交互过程中,数据的状态频繁变化,而各级系统、数据库也有可能出现各种各样的问题,而导致出现死数据或脏数据。各省市系统的升级、维护非常困难,但木已成舟,也只能被动的接受现状了。这其中固然有我们系统架构、软件bug的原因,但究其根本,还在于分布式。
而在去年,我们公司又接了某电力公司一个招标专家管理的项目,对方在开发的中间提出新的需求,要求采用分布式(每个业务人员可以用手提电脑将服务器上的所有数据同步到本机系统,并且在本机操作完以后再与服务器同步)并且态度十分强硬(理由是他们可能需要到环境恶劣的矿井等地,现场无上网条件,但又必须在现场使用此系统),如果我们不能实现就中止合同。我当时没有参与这个项目,但在听闻之后,也向技术总监表示了我的意见,
“既然可以使用手提电脑来做现场操作,那么在无线网络已经十分发达的今天,完全可以让客户使用无线网卡或通过手机来上网,不必采用分布式”,也阐述了分布式可能造成的后果,但由于销售方面的压力,被迫接受了用户的需求,而原技术负责人半途而废跑了,竟然把我顶上去做这个项目。最终这个项目是完成了,但工作量、开发时间已经大大超出了预期,原定三个月完成的小项目,最后用了9个月的时间。而在最终项目结束以后,我们竟然发现,客户根本没有使用我们这个分布式!非常的失败。这种失败,不是某个人的失败,而是公司领导强加个人意志、销售单纯看重销售业绩所导致的失败。过去发生过,以后也仍然可能会发生。
续:
还有过这样的事情,用户要求在他们备份数据库的时候,由我方为他们提供另一个临时数据库来保证业务的正常运转,然后再两个数据库同步。这样的要求是不是非常无理?对方坚持要停止数据库服务再备份,就是不肯软备份。所以对于这样的无理要求,无论如何一定不能答应,基本上已经到了做软件的底限了。客户就差没让我们给他写一个操作系统+数据库了。
类似连锁商场信息系统之类,应该还是要采用分布式,定期传输数据,比如每天从总部获得各种商品的价格信息,并定期将销售、库存信息向总部上报。这样能够保证本地操作的速度,另外也能保证业务不受外部网络的影响。但这类系统的信息流向相对比较单一,数据交换的频率要求也不是很高,实现起来相对容易一些。
分享到:
相关推荐
分布式系统并不局限于单一的定义,它可以是分布式的、网络的、并行的、并发的或分散的。这些术语在某种程度上有所交叉,但各有侧重: - “并行”系统强调数据上的同步操作,通常在单个控制线程下进行。 - “并发”...
10. **云计算平台**:如Amazon AWS、Microsoft Azure、Google Cloud Platform等,它们提供了丰富的分布式系统服务,包括计算、存储、数据库等,理解和掌握这些平台的使用是实际应用的关键。 通过对2019年和2020年的...
在分布式系统管理领域,应用软件是实现有效监控、自动化、部署及维护分布式环境不可或缺的工具。分布式系统由多个分散的组件组成,这些组件通过网络进行通信,以协同工作并提供一致的服务。在本文中,我们详细探讨...
南理工 魏松杰 对应他的英文版本PPT复习可用,同时是学习分布式系统的很好的PPT,分布式系统ppt对应分布式系统第五版英文版ppt,复习,自学可用,了解分布式系统,共10章,01-概述,02-系统模型,03-进程间通信,04-...
分布式系统理论体系非常庞大,涉及知识面也非常广博,本文精心选择了部分在工程实践中应用广泛、简单有效的分布式理论、算法、协议加以介绍。全文分为两大部分,第一部分介绍了分布式系统的一些基本概念并框定了本文...
这些范例展示了分布式系统在实际中的具体应用,包括但不限于人机交互系统、基于分布式文件系统的数据管理、以及基于分布式网络调用的计算服务等。在人机交互系统范例中,探讨了如何在分布式环境中有效地进行人机交互...
分布式系统是一种由多台计算机通过...通过深入学习这些分布式系统的核心概念和技术,你将能够理解和构建更加高效、可靠的分布式应用,适应不断增长的业务需求。这份"分布式系统课件PPT"会是你深入这个领域的宝贵资源。
"分布式系统概念与设计" 通过对分布式系统概念与设计的研究,我们可以了解到,分布式系统是一种复杂的系统,它由多个计算机节点组成,每个节点可以进行计算、存储和通信。这种系统可以提供高可用性、可扩展性和灵活...
透明性是分布式系统的关键特性之一,它指的是系统的某些属性对用户或客户端程序来说是不可见的,使得用户在使用系统时感觉不到系统的分布式特性。分布式系统的透明性具体可以分为几种类型:访问透明、位置透明、移植...
如互斥问题、死锁的预防和检测、处理机间的通信机制、可靠性问题、负载分配问题、数据管理问题及其可能的解决方案,并讨论了分布式系统设计在操作系统、文件系统、共享存储器系统、数据库系统和异型处理中的应用。...
【分布式系统在工业机器人领域的应用】 分布式系统是一种基于网络的软件架构,它通过高度内聚性和透明性实现各个组件间的协同工作。在分布式系统中,数据管理集中,对用户来说,无论是本地还是远程的数据访问都是...
分布式系统广泛应用于各种场景,如搜索引擎、分布式数据库、云计算平台、物联网(IoT)、内容分发网络(CDN)等,极大地推动了信息技术的进步。 2. 分布式系统的相关技术 2.1 分布式系统的软硬件系统 硬件层面,分布式...
《分布式数据库系统及其应用(第二版)》由邵佩英编著,是中国科大出版社出版的专业教材,旨在深入探讨分布式数据库系统的理论基础和实际应用。 分布式数据库系统的核心思想是将数据分布在多个物理位置上的独立...
Java分布式系统架构是一种将应用程序分布在多个计算节点上运行的技术,以提高系统的可伸缩性、容错性和性能。源码分析对于理解这种架构至关重要,尤其是对于开发者来说,它提供了深入学习和自定义系统的机会。本资源...
分布式系统运维交付解决方案研究与应用 1. 引言: 随着网络技术的快速进步,软件运行平台从单机环境转向网络环境,计算机系统逐渐由集中式向分布式系统发展。分布式系统因规模庞大、服务对象多、关系复杂等特点,给...
本文的内容虽然涉及了分布式系统的诸多方面,但侧重于介绍那些在工程实践中应用广泛、简单有效的理论、算法和协议,并通过实例和“工程投影”来帮助读者更好地理解这些概念和技术在真实系统中的应用。由于篇幅和深度...
2. **CAP理论**:分布式系统设计的核心原则之一是CAP定理,它指出一个分布式系统不能同时满足一致性、可用性和分区容错性这三个特性。理解和权衡这三者在实际系统设计中的重要性是至关重要的。 3. **Paxos算法**:...