`
longgangbai
  • 浏览: 7328545 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

构建分布式应用中需要考虑的问题

阅读更多

       在分布式系统中对传统大型应用进行分层处理,而且保持层间的独立性,各层各司器职,展示层负责将用户界面呈现给最终用户,而中间件负责提供实际的业务功能和服务,数据提供数据库的服务以及其他等。在项目中开发到实施过程出现的一系列问题,才明白其实分布式系统的工作必须考虑一些问题:

(1)远程方法调用

             开发者需要借助于网络连接各层,从而实现展示层到中间件层,中间件层到数据库层的连接,网络连接要负责分发方法的请求,代理(Brokering)参数,分发SQL语句等。

 

 

(2)负载均衡:

             展示层客户应该连接到负荷最轻的那台中间件(也包括数据库)服务器,一旦服务器超负载运行,其他服务器应该能够替它分担负载。

 

(3)透明的容错:

               如果服务器或者网络瘫痪,在不中断客户服务的前提下,能否将客户请求分发给其他的服务器?如果能,则响应时间多长?响应的时间是否能够满足业务的需求?

 

(4)后端集成:

           开发者可能需要开发如下内容:

                     A。将业务数据持久化到数据库中

                     B。同现有的遗留系统的进行的集成

 

(5)事务:

               一旦客户端同时访问同一行数据库记录时,该如何处理?如果数据库瘫痪,该如何处理?事务能够应对此类的问题。

 

(6)集群:

                当某台服务器瘫痪时,其上的状态信息该怎么处理?需要在所有的服务器中提前复制这类的信息吗?而且,客户能否使用其他的服务?为解决这些问题就要使用到集群。

 

(7)动态重新部署:

                  如果网站处于运行状态,该如何实现软件的更新操作?难道需要暂时关机,还是让他一直处于运行中?动态,重新部署可以解决这些问题吗?

 

(8)完全关机:

                如果需要关闭服务器,是否能够平滑的完成的系统的安全挂机(即不中断那些正使用当前服务器提供的服务的客户)?

 

 

(9)日志和评审:

                 一旦运行期系统出现错误,能否找到相关的 日志信息已解决问题?即使没有出现错误信息,日志信息有助于调试并发现问题的所在。

 

(10)系统管理:

              一旦运行出现灾难性失败事件,谁在负责监控系统?需要借助于监控软件,让管理员预防灾难的发生,在出现异常事件时能够及时通知到管理员。

 

 

(11)线程:

              如果存在多个客户连接到服务器,则服务器需要具备同时处理多个客户请求的能力,因此服务器必须具备多线程的能力。

 

(12)面向消息的中间件(MOM):

              对于那些客户同服务器处于松耦合的场景,开发者需要借助于消息来处理客户请求,因此,此时需要借助于基础框架完成消息的处理。

 

(13)组件的生命周期:

            服务器能够依据客户请求的数量的多少,而创建新的组件或者销毁现有的组件,防止内存服务重新启动时,内存泄露的问题。

 

(14)资源池:

             如果某客户当前并没有使用服务器,则需要将其占有的服务器资源返还资源池,从而供其他客户使用,具体的资源有:对象,数据库连接,服务器中存活的组件等。

 

 

(15)安全性:

              必须确保服务和数据库不会受到肇事者的破坏,因此,需要依据用户的响应的角色而授予适当的权限,即对器访问的操作授权。

 

(16)缓存:

             假如存在在如下场景,所有客户需要访问共享的资源数据库中的一些数据。此时中间件服务器是否还需要根据每次的请求去数据库重复提取这样的数据?开发者应该清楚,将数据存放在内存中是较好的解决的办法,因为那样可以避免频繁的网络数据传输和访问数据库。

 

针对以上问题,我将在以后的博客中针对大家关心的问题一一描述问题的解决方案,希望各位大侠拍砖!!进行交流

分享到:
评论

相关推荐

    利用MySQL构建分布式应用.pdf

    综上所述,利用MySQL构建分布式应用是解决大规模数据处理和高可用性问题的有效途径,通过扩展MySQL的功能,可以在保持其原有优势的同时,实现分布式环境下的高效数据管理。文章提供了具体的实现方法和步骤,对于...

    基于TUXEDO中间件构建分布式事务应用研究.pdf

    分布式事务是数据库事务处理的一种形式,它涉及在一个分布式计算环境中,跨多个数据库或计算节点...在实际开发过程中,可能还需要考虑性能优化、故障恢复、安全性保障等因素,确保分布式事务应用能够稳定、高效地运行。

    Delphi7组件与分布式应用开发

    《Delphi7组件与分布式应用开发》一书深入探讨了使用Delphi 7进行组件编程和构建分布式应用程序的关键技术。Delphi 7是 Borland 公司推出的一款强大的面向对象的编程工具,以其高效的编译器和丰富的VCL(Visual ...

    asp 和com构建分布式系统

    此外,还需要考虑组件的管理和维护,例如资源的集中存储、激活设置以及对事务处理的支持等问题。 #### 五、总结 综上所述,利用ASP和COM构建多层分布式应用是一种高效的方法,能够支持大型企业的复杂需求。通过将...

    Visual Basic6.0分布式应用程序开发

    7. **安全性考虑**:在分布式应用中,安全是一个不容忽视的话题。VB6.0提供了加密、认证和授权机制,开发者需要学习如何有效地保护数据传输和资源访问。 8. **错误处理与调试**:由于分布式系统的复杂性,错误处理...

    使用Remoting开发分布式应用

    总的来说,.NET Remoting是构建分布式应用程序的强大工具,它提供了灵活的通信机制和丰富的功能。然而,随着技术的发展,如WCF(Windows Communication Foundation)等现代通信框架已经取代了Remoting的部分功能,...

    分布式应用程序简单例子

    6. **安全性考虑**:在实际应用中,还需要考虑安全性问题,如身份验证、授权和数据加密。Remoting提供了安全特性,如使用通道安全属性和远程对象的安全策略来确保通信安全。 通过学习这个简单的Remoting例子,...

    浅谈PowerBuilder分布式技术在系统开发中的应用.pdf

    分布式应用的设计需要考虑如何有效地划分不同层之间的逻辑,如何保证不同部分之间的通信效率,以及如何处理分布式事务的一致性问题。为此,开发人员需要掌握更多的分布式设计原则、中间件技术,以及对网络通信、并发...

    数据库在分布式应用软件中的应用与设计研究.pdf

    分布式应用软件中的事务操作涉及到多个子事务,需要解决数据集成和事务管理问题。移动Agent技术常被用来封装子事务,使其能够在分布式网络中自由移动,处理事务并返回结果。这样,分布式计算可以在不同的服务器节点...

    基于.NET的分布式应用程序框架的设计.pdf

    综上所述,设计基于.NET框架的分布式应用程序框架是一个复杂的过程,涉及到对现有技术的深入分析、新架构的创新设计以及对安全性问题的全面考量。随着互联网技术的不断发展,分布式系统的设计和实现也在不断演进,...

    徐景春:分布式应用探讨:当新技术遭遇传统难题

    在徐景春的演讲《分布式应用探讨:当新技术遭遇传统难题》中,他深入探讨了分布式技术在面对传统挑战时的应对策略,特别是在数据库与虚拟化领域的应用。这篇演讲不仅揭示了分布式技术的优势,同时也指出了其在实际...

    分布式Java应用:基础与实践.pdf

    尽管存在可以改进的空间,例如对并发设计和算法设计的深入介绍,分布式应用安全问题的涉及,以及对Java源码级别的优化和分布式应用特有的编程、设计原则、架构和思维模式的总结等方面,但本书仍不失为一本有深度的...

    Java【分布式】学习笔记01分布式Java应用

    3. **Spring Cloud**:一套基于Spring Boot的微服务开发工具包,提供了构建分布式系统所需的各种组件和服务,如配置中心、服务注册与发现、熔断器、智能路由、微代理、控制总线等。 4. **Zookeeper**:一个分布式的...

    Delphi 5.x 分布式多层应用系统篇

    在这个"分布式多层应用系统篇"中,我们将深入探讨如何利用Delphi 5.x构建可扩展、可靠且易于维护的分布式应用。 分布式多层应用系统通常由客户端、服务器和数据库三层组成。在Delphi 5.x中,我们可以方便地构建这样...

    分布式应用无银弹—分布式应用架构核心要素的设计方法探讨(22页).pdf

    因此,构建分布式平台需要在高可用、高可靠和高性能之间找到平衡。 分布式计算和分布式存储是解决性能瓶颈的关键。通过增加计算和存储节点,可以实现水平扩展(scale out),以提升处理能力和存储容量,从而缓解CPU...

    Delphi分布式开发

    Delphi与Interbase的紧密集成使得开发者可以方便地在分布式应用中使用数据库。 6. **Internet和Web Services**:Delphi提供了对HTTP协议的支持,允许开发Web应用程序和服务。通过SOAP(Simple Object Access ...

    分布式学习环境构建的反思与前瞻.pdf

    构建分布式学习环境需要考虑多个方面:首先,设定合理的学习背景和目标,确保学习活动与实际需求和兴趣相匹配;其次,科学分布技术学习环境中的资源,确保“制品”丰富多样且易于获取;最后,建立情感学习环境,通过...

    分布式交互应用中服务器放置问题的启发式算法.pdf

    这个问题是复杂且具有挑战性的,因为它需要考虑到网络拓扑、用户分布、带宽需求和服务器负载等多种因素。 本研究提出了一种使用模拟退火算法和禁忌搜索算法来解决这个问题的方法。模拟退火算法是一种基于物理退火...

Global site tag (gtag.js) - Google Analytics