最近刚好在开发一个分布式服务系统,从服务器的搭建到服务软件的设计方方面面都要亲自动手,一段时间下来,颇有心得,拿来跟跟大家分享一下。
首先,我们要知道什么是分布式服务系统?分布式服务系统就是将服务系统的功能拆分,将各个功能放在几个独立的组件上,通过这几个组件之间的相互协作,来完成整个系统的功能。在这里,几个独立的组件可以是指几个独立的CPU,但更通常的是指网络上的几台计算机。
采用分布式系统,最大的优点表现在系统的处理速度上。系统的各个功能放在几个独立的组件上,各部分的组件完成自己的功能块,以并行的方式协同工作。我们可以假设一个服务过程A要由1、2、3三个任务块,每个任务块要花费5秒钟来完成的话,普通的服务系统就需要15秒钟才能完成一个服务过程;但是如果采用分布式服务系统的话,最快可以达到5秒钟就可以完成这个服务过程。而且,分布式服务系统由于其处理各部分功能集中,可以最大程度上提高各部分服务器硬件的能力,如专门负责数据处理的可以降低硬件的其他成本而提高其处理器能力,这也很大程度上有利于提高他的处理速度。分布式服务系统另外优点在于个功能模块分开,便于管理、维护和更新,服务器的管理维护在大型的服务系统中也是相当重要的。
举个例子来说吧,我们当前开发的这个分布式定货服务系统,就是通过三个服务器组建而成:一个IIS WEB发布服务器;一个COM+ APPSERVER;一个MS_SQL数据库服务器。我就借这个例子,来说明一下一个典型的分布式服务系统大致的组成部分:
表示层。表示层主要负责业务层与用户之间的交流接口和数据传递工作,这部分虽然是唯一一个直接与用户打交道的部分,但是在整个服务系统设计中,工作最简单的一部分。它只要负责业务层与用户间简单的数据传递以及一些简单的数据处理就行了。上面例子中的IIS WEB服务器就是属于这一部分。
业务层。这是分布式服务系统的心脏,最主要的数据处理工作和服务就由这一部分完成和提供。在服务系统组建和服务软件开发过程中,这一部分花费的时间和精力也是最多的。例子中的COM+服务器就属于这一部分,主要负责定单的处理,如果计算运费、收益利润等等事情。
数据源。这部分主要用于存储数据。目前市面上的SQL Server,Oracle等数据库系统基本上能完成大部分的工作。不过我们有时候需要根据自己的需要做一些功能的扩展。但这些开发过程的分量是微不足道的。例子中的MS_SQL数据库服务器就属于这一部分。
从上面的例子我们可以看出来,一个简单的分布式服务系统,由于个部分功能和用途不一样,所以对其软硬件要求也不一样。对于负责表示层的服务器,要求是最低的,所以就硬件选择上,应该着重它的经济性,并不需要太高的服务器配置。对于负责业务层的服务器,我们从上面的分析过程中也看出来了,他是处理数据的主要部分,所以它的处理速度和能力在极大程度上决定了整个系统的速度和能力,所以软件开发上要要特别注重它同前(数据源)后(表示层)之间的并行处理能力,注重软件的处理速度,资源消耗等问题;在硬件上,对CPU和内存的要求也是整个系统中最高的。最后是负责数据源的服务器,他的软硬件要求要根据具体的情况而,如果数据量比较大,就要采用大的数据库系统如Oracle,其存储器要求也是要求大而快;如果数据量比较小,可以采用SQL Server,My_SQL等数据库服务器。数据源服务器的CPU、内存选取也要根据数据查询检索要求而定,如果数据查询检索比较繁多,数据量又特别大的话,就需要注重选取快的CPU和大的内存了。
分享到:
相关推荐
分布式文件系统(Distributed File System,DFS)是一种网络文件存储解决方案,它允许用户通过单一的逻辑视图访问网络上分散在不同服务器上的文件和文件夹,而无需关心这些文件的实际物理位置。DFS 提供了简单易用的...
### 分布式文件系统介绍 #### 一、FastDFS **FastDFS简介** FastDFS是一款由国人基于MogileFS改进而来的轻量级、开源的分布式文件系统。相较于MogileFS,它提供了更好的性能,并针对特定应用场景进行了优化。 **...
苹果公司推出的基于组播域名系统(multicast DNS)是分布式物联网系统的一个应用实例,这种技术可以在网络内部自动分配地址,无需中央服务器的支持。其核心思想是利用分布式网络技术,弱化平台中物体、数据接收、...
3. 分布式WEB系统的三层体系结构: 典型的分布式WEB系统可以分为三个层次:客户端、应用程序服务器和数据服务器。在这个架构中,数据交换不仅发生在客户端与应用服务器之间,还涉及到应用服务器与数据服务器之间的...
**分布式缓存服务器Memcachedb详解** Memcachedb是一个基于Memcached的开源项目,由新浪公司的开发团队设计并推出。它的主要目标是在原有Memcached的基础上引入了持久化存储功能,同时实现了异步主辅复制机制,以...
假设我们需要实现一个简单的分布式计数器应用,客户端可以增加计数器的值,服务器端则负责维护这个计数器的实际值。在这个例子中,我们首先定义了一个远程接口`ICounter`,该接口包含了增加计数器值的方法`Increment...
此外,文章还探讨了系统通信控制服务器的设计过程、容错与安全管理单元的设计、FPGA内部结构和通信模块的设计,以及通信信号供电单元的供电机制。在软件设计方面,包含了通信接口软件和信号控制算法的设计。通过实验...
在深入理解KFS的文件管理系统之前,我们先简要了解一下分布式文件系统的基本概念。 分布式文件系统是一种将文件分布在多台计算机上的系统,通过网络进行通信,对外表现为单一的逻辑文件系统。这种设计能够充分利用...
软件体系结构主要包括客户-服务器、面向服务、事件驱动、微服务等类型,而系统体系结构则包括单体、分布式、主从、对等等,主要区别在于软件的组织和交互方式。 分布式系统的分层结构有助于简化设计,通常包括网络...
分布式网络拓扑管理系统是现代信息技术领域的一个重要分支,它主要负责管理和维护网络的拓扑结构。网络拓扑结构是指网络中各个节点以及它们之间的连接关系的总体布局,是网络可靠性和性能分析的基础。以下是对分布式...
【分布式系统与云计算知识点】 1. 分布式系统的特性: - 透明性:用户无需关心数据和服务的具体位置,操作如同在本地执行。 - 开放性:允许系统添加或删除节点,支持异构环境。 - 易用性:并非分布式系统的特性...
【Java本体构架下的分布式对象应用系统】的讨论主要集中在Java语言在分布式计算环境中的应用,特别是如何利用Java的特性构建分布式对象系统。分布式对象技术是随着互联网的发展,为适应多用户、跨平台需求而诞生的...
在系统实现部分,论文详细讲解了教务管理程序的数据结构和程序流程设计,简要介绍了系统的集成和部署过程。同时,为了确保软件质量,制定了全面的测试策略和验收标准,并记录了测试过程中的主要问题及其解决方案。在...
具体来说,分布式计算机系统在通信结构的应用过程中可以实现不同网络连接的支持,例如,在个人计算机系统作为服务器的网络环境中,保证工作站与服务器之间的联通效应。这一过程中,系统的独立化管理、功能实现和价值...
2. **配置文件**:XML常被用来存储和管理分布式系统的配置信息,如服务器设置、数据库连接参数等。这使得配置文件更易于理解和维护。 3. **Web服务**:SOAP(Simple Object Access Protocol)基于XML,用于分布式...
1. **服务器的组织结构**:服务器的内部架构如何设计,以便高效地处理请求。 2. **客户端如何联系服务器**:确定客户端如何发现和连接到服务器,例如使用DNS或者预配置的地址列表。 3. **服务器的可用性**:考虑...
- 分布式系统:内部对用户透明,计算机之间协作并自主,利用多种资源动态分配任务。 - 计算机网络:互连的独立计算机分布在不同地点,彼此自治。 2. **通信子网的拓扑结构**: - 星型:中心节点与多个边缘节点...