当前位置: 首页 > news >正文

分布式系统相关概念(单体、集群、分布式、分布式集群、微服务)

目录

一、互联网项目架构相关概念。(非传统项目)

(1)网站的性能指标。(高性能)

(2)高可用。

(3)可伸缩。

(4)高可扩展。

(5)安全性。

(6)敏捷性。

二、集群和分布式。

(1)集群。

(2)分布式。

(3)集群和分布式(简单图解)。

传统项目。(单机架构)

集群。

分布式。

三、架构介绍及图解。

(1)单体架构。

(2)垂直架构。

(3)分布式架构。

(4)SOA架构。

(5)微服务架构。


一、互联网项目架构相关概念。(非传统项目)

(1)网站的性能指标。(高性能)
  1. 响应时间:执行一个请求,一直到最后收到响应数据所需全部时间。
  2. 并发数:系统同时能够处理的请求数。(并发连接数(每秒服务器连接的总TCP数)、请求数QPS(每秒请求数)、并发用户数)
  3. 吞吐量:单位时间内系统能够处理的请求数量。(每秒查询数QPS、每秒事务数TPS)
(2)高可用。
  • 保证网站的服务一直可以正常的访问。
  • 集群。
(3)可伸缩。
  • 增加/减少硬件,提供/降低服务处理能力。
(4)高可扩展。
  • 系统间耦合低,方便新增/移除,增加/减少新的功能/模块。
(5)安全性。
  • 网站的安全访问和数据加密。
  • 数据的安全存储。
(6)敏捷性。
  • 随需求变更,快速的响应上线市场。

二、集群和分布式。

(1)集群。
  • 很多“人”一起,干一样的事情。

  • 一个业务模块,部署到多台服务器上。
(2)分布式。
  • 很多“人”一起,干不一样的事情。而且这些不一样的事情,合起来是一件大事情。

  • 一个大的业务系统,拆分为小的业务模块,分别部署到不同的机器上。
(3)集群和分布式(简单图解)。
  • 传统项目。(单机架构)

  • 集群。
  • 通过负载均衡统一提供访问服务,再进行转发可用节点。高性能、高可用的体现。
  • 但是伸缩性较低,因为A、B、C、D是在一个项目里面,扩展与伸缩不容易。

  • 分布式。
  • A、B放在一个项目,C、D放在一个项目。然后AB可以集群,CD也可以集群。AB、CD也是分布式。这样若A、B提供的服务性能不够,再扩展一份AB到新项目即可,继续构成一个集群的环境。这是可伸缩性体现。
  • 相互拆分后,项目间的模块的耦合降低,比如需求变更:需新增一个E模块,对其他的服务是没有影响的,只需部署一个E模块。这是高扩展性体现。

三、架构介绍及图解。

(1)单体架构。
  • 优点:简单、开发部署方便、小型项目非常适合。
  • 缺点:项目启动慢(服务/模块一多,启动自然需要很多时间)、可靠性差(若A服务挂了,肯定影响其他服务)、可伸缩性差、扩展性和可维护性差、性能较低。

(2)垂直架构。
  • 垂直架构:将原先单体架构中在一起的多个模块拆分为多个独立的项目,形成多个独立的单体架构。
  • 虽解决与缓解了一些单体架构的问题,但还是存在缺点:某些重复功能太多(因为多个单体项目间并不通信,某些组件需要重复的写)。

(3)分布式架构。
  • 分布式架构:在垂直架构的基础上,将公共的业务模块抽离出来,作为独立的服务,供其他服务调用者进行消费,这样就可以实现服务的共享和重用。
  • RPC。Remote Procedure Call(远程过程调用)。有很多协议和技术都实现
    了RPC的过程。比如:HTTP REST 风格,Java RMI(远程方法调用) 规范等等。
  • 虽解决与缓解了一些垂直架构的问题,但还是存在缺点:服务的提供方一旦发生变更,所有的消费方都需要一一变更。

(4)SOA架构。
  • 通过企业服务总线,进行相互调用。
  • SOA架构(service oriented architecture,面向服务架构)。它是一个组件模型,它将应用程序的不同功能单元(服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。
  • ESB(企业服务总线),可以叫服务中介。主要是提供了一个服务与服务之间的交互。ESB包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急等等。
  • 解决与缓解了一些分布式架构的问题。随后就演变出微服务架构。

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

  • 特点:
  • 1、服务实现组件化:开发者可以自由的选择开发技术,也不需要协调其他团队。因为每个服务的之间的交互可以使用 REST API 进行操作。(A服务可以使用java,B服务可以使用python等等)
  • 2、去中心化:每个微服务有自己私有的数据库持久化业务数据。
  • 3、自动化部署:把应用拆分为一个一个独立的单个服务,方便自动化部署测试和运维。


  • Dubbo是SOA架构的。
  • SpringCloud是微服务架构。

http://www.dtcms.com/a/449085.html

相关文章:

  • vscode 配置使用pyqt5
  • CSS选择器常见用法
  • 【Docker】Windows Docker 完全入门指南:从安装到实战的全流程记录
  • 从零开始的C++学习生活 4:类和对象(下)
  • 温州做网站优化网站设计培训
  • 18网站推广关于旅行的网站怎样做
  • 做网站赚钱还是企业宣传片推广方案万能模板
  • 视频分享网站怎么做的注册营业执照需要什么资料
  • 网站建设教程赚找湖南岚鸿认 可php无版权企业网站管理系统
  • 建立网站站点的目的一个主机可以做几个网站域名
  • 封面上的网站怎么做网站模块设计软件
  • 网站制作还花钱电子商务网站建设及推广方案论文
  • 淮南服装网站建设地址如何做虚拟币交易网站
  • 网站建设规划表乐清网站建设lonwap
  • 网站开发创业计划书模板网上能免费做网站发布叼
  • 湖南张家界建设局网站深圳本地招聘网站有哪些
  • 分析网站建设前期的seo准备工作广东网络文明大会开幕
  • 贵州城乡和住房建设厅网站天津seo方案
  • 青岛php网站建设wordpress可以做博客么
  • 智能建站技术自己注册了个域名想做一个网站
  • 做网页游戏网站需要什么做的网站必须放
  • 乐清网站网络公司wordpress 登陆不了
  • 淘宝作图在哪个网站上做图最专业网站建设开发
  • 公司电商网站建设方案模板百度怎么优化关键词排名
  • 短租网站那家做的好处建造网站
  • 公司网站推广费用运营软件有哪些
  • 智能网站建设步骤免费培训机构管理系统
  • 公司网站建设属于软件销售wordpress默认主题 xss
  • 企业自建网站平台有哪些推广网络广告
  • ps模板素材网站域名有关的网站