0%

分布式系统相关概念

分布式系统中的相关概念

大型互联网项目架构

特点
传统项目

企业内部使用,如OA、HR、CRM

互联网项目

网民、天猫、微信、百度

特点:

  • 用户多
  • 流量大,并发高
  • 海量数据
  • 易受攻击
  • 功能繁琐
  • 变更快
区别

用户群体

用户体验

目标
  • 高性能:提供快速的访问体验

  • 高可用:网站服务一直可以正常访问

  • 可伸缩:通过硬件增加/减少,提高/降低处理能力
  • 高可扩展:系统间耦合第,方便通过新增/移除方式,增加/减少新的功能/模块
  • 安全性:提供网站安全访问和数据加密,安全存储等策略
  • 敏捷性:随需应变,快速响应
集群和分布式
  • 集群:很多“人”一起,一起干一样的事
    • 一个业务模块,部署在多台服务器上
  • 分布式:很多“人”一起,干不一样的事,这些不一样的事,合起来是一件大事。
    • 一个大的业务系统,拆分成小的业务模块,分别部署在不同的机器上。
架构演进
单体架构

优点:

  • 简单:开发部署都很方便,小型项目首选

缺点:

  • 项目启动慢
  • 可靠性差
  • 可伸缩性差
  • 扩展性和可维护性差
  • 性能低
垂直架构

垂直架构是指将单体架构中的多个模块拆分为多个独立的项目。形成多个独立的单体架构。

存在的问题:

  • 重复功能太多
分布式架构

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

存在的问题:

服务提供方一旦产生变更,所有消费方都需要变更

SOA架构

SOA(Service-Oriented Architecture,面向服务的架构)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。

ESB(Enterparise Service Bus)企业服务总线,服务中介。主要是提供了一个服务于服务之间的交互。ESB包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急等等。

微服务架构

微服务架构是在SOA上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

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

特点:

  • 服务实现组件化:开发者可以自由选择开发技术。也不需要协调其他团队
  • 服务之间交互一般使用REST API
  • 去中心化:每个微服务有自己私有的数据持久化业务数据
  • 自动化部署:把应用拆分成一个一个独立的单个服务,方便自动化部署、测试、运维
------------- THE END! THANKS! -------------