服务器经典架构

经典架构包括单体、分层、微服务、无服务器及分布式等,各有特点与适用场景

服务器经典架构

服务器经典架构

服务器经典架构是指在长期的服务器技术发展过程中,被广泛采用且具有代表性的一系列架构模式,这些架构模式在不同的应用场景和需求下发挥着重要作用,为各类网络服务和企业应用提供了稳定、高效的运行基础。

常见服务器经典架构类型

(一)两层架构

  • 架构组成
    • 客户端:通常是用户直接交互的终端设备,如个人电脑、移动设备等,它负责向服务器发起请求,例如提交表单数据、查询信息等。
    • 服务器端:主要处理客户端的请求,包括业务逻辑处理、数据存储和检索等操作,服务器接收到客户端请求后,按照预定的业务规则进行处理,然后将结果返回给客户端。
  • 工作流程示例(以简单的网页浏览为例)
    |步骤|客户端操作|服务器端操作|
    |—|—|—|
    |1|用户在浏览器中输入网址(如https://example.com)|服务器接收到请求,解析网址,确定要返回的资源(如网页文件)|
    |2|浏览器向服务器发送HTTP请求,要求获取网页内容|服务器查找对应的网页文件,读取文件内容,并准备将其发送回客户端|
    |3|服务器将网页文件(包含HTML、CSS、JavaScript等)以HTTP响应的形式发送给客户端|浏览器接收到响应,解析网页内容并呈现给用户|
  • 优缺点
    • 优点:结构简单,易于理解和开发,对于一些简单的应用,如小型网站、简单的工具类应用等,两层架构能够快速搭建并投入使用。
    • 缺点:随着业务复杂度的增加,服务器端的负担会越来越重,所有的业务逻辑和数据处理都集中在服务器端,当客户端数量增多或者业务逻辑变得复杂时,服务器的性能和可扩展性会受到限制。

(二)三层架构

  • 架构组成
    • 表示层(客户端):主要负责用户界面和与用户交互的部分,它接收用户的输入,如鼠标点击、键盘输入等,并将这些操作转化为请求发送给业务逻辑层,在一个企业级管理系统中,客户端可以是带有各种表单和按钮的网页界面,员工通过这个界面输入数据和查询信息。
    • 业务逻辑层(中间层):这是整个架构的核心部分,它处理具体的业务逻辑,在电商系统中,业务逻辑层负责处理订单的创建、支付流程、库存管理等复杂的业务规则,它接收表示层传来的请求,按照业务需求进行计算、验证和处理,然后调用数据访问层来获取或存储数据。
    • 数据访问层(底层):负责与数据库或其他数据存储系统进行交互,它执行数据的增删改查操作,将业务逻辑层需要的数据从数据库中提取出来,或者将处理后的数据存储到数据库中,在数据库中查询商品信息、更新用户订单状态等操作都在这一层完成。
  • 工作流程示例(以电商系统下单为例)
    |步骤|表示层操作|业务逻辑层操作|数据访问层操作|
    |—|—|—|—|
    |1|用户在电商平台网页上选择商品并点击“下单”按钮|接收下单请求,验证用户信息、商品库存等业务逻辑|查询商品库存表,检查所选商品是否有货|
    |2|将订单信息(如商品名称、数量、收货地址等)发送给业务逻辑层|根据验证结果,若库存充足,则生成订单编号,计算总价等订单详细信息|将订单信息插入到订单表中,更新商品库存表(减少相应商品库存)|
    |3|业务逻辑层处理完成,将订单确认信息返回给表示层|将订单确认页面(包含订单号、总价等信息)呈现给用户|无(等待下一次数据操作请求)|
  • 优缺点
    • 优点:分层清晰,各层职责明确,这种架构使得开发人员可以专注于每一层的开发,提高了代码的可维护性和可扩展性,当业务逻辑发生变化时,只需要修改业务逻辑层,而不需要大幅度改动表示层和数据访问层,不同的层可以分别进行优化,例如对数据访问层可以进行数据库性能优化,对业务逻辑层可以进行算法优化等。
    • 缺点:相对于两层架构,三层架构的结构相对复杂,开发和部署的成本较高,各层之间的通信会增加一定的系统开销,需要进行合理的设计和优化,以避免性能瓶颈。

(三)分布式架构

  • 架构组成
    • 多个节点服务器:分布式架构将业务功能分布到多个服务器节点上,这些节点可以根据不同的功能或业务模块进行划分,例如有的节点负责用户认证、有的节点负责数据处理、有的节点负责文件存储等,每个节点都可以独立运行,并且可以通过网络进行通信和协作。
    • 负载均衡器:为了合理地分配客户端请求到各个节点服务器,通常会使用负载均衡器,负载均衡器可以根据一定的算法(如轮询、加权轮询、最小连接数等)将请求分发到不同的节点,以避免某个节点过载,提高系统的整体性能和可用性。
    • 分布式存储系统:用于存储大量的数据,它可以将数据分散存储在多个存储节点上,并且提供数据冗余和恢复机制,以保证数据的可靠性和可用性,在大型互联网公司中,会使用分布式文件系统(如HDFS)来存储海量的用户数据、图片、视频等文件。
  • 工作流程示例(以大型网站为例)
    |步骤|客户端操作|负载均衡器操作|节点服务器操作|
    |—|—|—|—|
    |1|用户在浏览器中输入大型网站网址(如https://largewebsite.com)|负载均衡器接收到请求,根据负载均衡算法选择一个合适的节点服务器(如根据当前各节点的连接数,选择连接数最少的节点)|选定的节点服务器接收到来自负载均衡器的请求,开始处理请求(如解析用户请求,查询相关数据等)|
    |2|浏览器向负载均衡器发送HTTP请求|负载均衡器将请求转发给选定的节点服务器|节点服务器按照业务逻辑处理请求,可能需要从分布式存储系统中读取数据(如用户个人信息、文章内容等),或者与其他节点服务器进行通信(如调用其他服务接口)|
    |3|节点服务器处理完请求,将结果返回给负载均衡器|负载均衡器将结果转发回客户端|浏览器接收到响应,呈现网页内容给用户|
  • 优缺点
    • 优点:具有高度的可扩展性,可以轻松地添加或移除节点服务器来应对不断增长的业务需求,系统的稳定性和可靠性较高,因为即使某个节点出现故障,其他节点仍然可以继续提供服务,能够充分利用多台服务器的资源,提高系统的整体性能,尤其适合处理大规模的并发请求和海量数据处理。
    • 缺点:架构复杂,设计和实现的难度较大,需要解决节点之间的通信、数据一致性、分布式事务等诸多问题,对运维人员的要求较高,需要具备分布式系统管理和维护的技能。

相关问题与解答

问题1:两层架构和三层架构在实际应用中如何选择?

答:如果应用比较简单,业务逻辑相对单一,对系统的可扩展性和复杂度要求不高,例如一些小型的内部工具或简单的展示型网站,两层架构可能就足够了,它开发成本低、速度快,如果应用业务逻辑复杂,需要良好的分层和解耦以提高代码的可维护性、可扩展性,或者预计未来业务会有较多的扩展和变化,那么三层架构是更好的选择,三层架构虽然初期开发和部署成本稍高,但能更好地应对复杂的业务场景和长期的发展需求。

服务器经典架构

问题2:分布式架构中如何保证数据一致性?

答:在分布式架构中,保证数据一致性是一个复杂的问题,一种常见的方法是使用分布式事务协议,如两阶段提交(2PC)或三阶段提交(3PC)协议,这些协议通过在多个节点之间协调事务的提交或回滚,来确保数据的一致性,也可以采用基于数据版本的一致性模型,例如乐观锁或悲观锁机制,乐观锁假设数据冲突的概率较低,在更新数据时先检查数据版本,若版本符合预期则进行更新,否则重新尝试,悲观锁则是在读取数据时就锁定数据,直到事务完成才释放锁,以防止其他事务对数据的并发修改,还有一些分布式数据库提供了强一致性或最终一致性的保障机制,开发人员可以根据具体的业务需求选择合适的

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/53672.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年7月11日 03:10
下一篇 2025年7月11日 03:16

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN