互联网项目架构

yql

架构概念

技术选型、表的建立

大型互联网项目架构目标

高性能

提供快速的访问体验

  • 响应时间:一个请求从开始到最后收到响应数据所花费的总体时间
  • 并发数:指系统能够同时能处理的请求数量
    • 并发连接数:客户端请求服务器,并建立TCP连接
    • 请求数:QPS,指每秒有多少个请求
    • 并发用户数:单位时间内有多少用户
  • 吞吐量:指单位时间内系统能处理的请求数量
    • QPS
    • TPS:每秒能处理的事务数。一个事务是指一个客户机向服务器发送请求然后服务器作出反应的过程。客户机在发送请求开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数
    • 一个页面的一次访问,只会形成一个TPS;但一次页面请求,可能会产生多次对服务器的请求,就会有多个TPS
    • QPS >= 并发连接数 >= TPS

高可用

网站服务一直可以访问

可伸缩

通过硬件增加/减少, 提高/降低处理能力

高可扩展

系统间耦合低,方便通过新增/移除方式,增加/减少新的功能

安全性

提供网站安全访问和数据加密、安全存储等策略

敏捷性

随需应变、快速迭代响应

分布式系统中的相关概念

集群和分布式

  • 集群:很多人一起,干一样的事
  • 分布式:很多人一起,干不一样的事,合起来是一件大事

架构演进

  • 垂直架构:将单体架构中的多个模块拆分成为多个独立的项目。形成多个独立的单体架构。(重复功能太多)

  • 分布式架构:

    • 在垂直架构基础上,将公共业务模块抽取出来,作为独立的服务,供其他调用者消费,以实现服务的共享和重用。

    • RPC:Remote Procedure Call 远程过程调用。有非常多的协议和技术来实现RPC的过程。比如HTTP REST规范

    • 分布式架构存在的问题:服务提供方一旦发送变更,所有消费方都需要变更

  • SOA架构:

    • 面向服务的架构:将应用程序的不同功能单元进行拆分,并通过这些服务之间定义良好的接口和契约联系起来

    • ESB:企业服务总线,服务中介,提供了一个服务于服务之间的交互。ESB包含的功能如负载均衡、流量控制、加密处理、服务监控、异常处理等

  • 微服务架构:

    • 业务需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发、设计和运行的小应用。这些小应用之间通过服务完成交互和集成

    • 微服务架构 = 80%的SOA服务架构思想 + 100%的组件化机构思想 + 80%的领域建模思想

    • 特点:服务实现组件化、去中心化、自动化部署

Comments