您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
分布式与系统架构的演变
 
作者:我会努力变强的
   次浏览      
 2020-6-18
 
编辑推荐:
本文主要简单以一个商城系统架构发展作为例子,简单分析了系统架构的演变,希望对您的学习有所帮助。
来自于CSDN,由火龙果软件Alice编辑、推荐。

分布式

分布式就是把计算机通过网络连接起来协同工作。由多台计算机负责完成同一件事。

SOA全称 Service-Oriented Architecture,面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件(服务)进行分布式部署、组合、和使用。一个组件(服务)以独立的形式存在于操作系统的进程中。

站在功能的角度上,把业务逻辑抽象成可复用、可组装的服务,通过服务编排、组装实现业务快速再生,把原先的固有业务转变为通用业务服务,实现业务逻辑的快速复用。

特点:分布式、可复用、扩展灵活、松耦合。

当垂直应用越来越多时,应用之间的交互是不可避免的,将核心业务抽取出来,做成独立的服务组件。逐渐形成稳定的服务中心,使得前端应用能够更加快速响应市场多变的需求。

优点:

把公共功能抽取出来形成一个个可复用的服务。提高开发效率。

可以对不同的服务根据实际情况进行不同力度的集群化部署,解决系统压力。比如某个服务访问量大,就集群化力度大,某个服务访问量较小,就集群化力度比较小,实现比较灵活的性能扩展。

基于ESB总线或者Dubbo等框架,减小系统间的耦合。

缺点:

抽取服务的力度较大。

服务提供方与服务调用方的接口耦合度较高。

分布式架构要解决的问题:

任务分解

如何把本身单体的系统架构拆分成一个个独立部署的节点。可以通过领域模型进行拆分。

节点通信

各个节点之间进行通信,才能保证系统正常运行。可以通过RPC框架(Dubbo)或者消息中间件(ActiveMQ等)进行节点通信。

分布式和集群的关系

分布式就是把一个业务拆分成多个子系统。部署在不同的服务器上。各个子系统之间通过网络进行通信,协调完成业务。对外呈现出的是一个整体。

集群是把同一子系统部署多个服务器上,通过负载均衡等方案对系统进行访问。达到系统性能扩展和实现高可用。

系统架构的演变

以一个商城系统架构发展作为例子。系统有用户模块,商品模块,订单模块。

第一版

由于项目初期,用户量少

使用到的架构:

容器:tomcat,jsp/servlet。

数据库:mysql。

第二版

随着用户数增多,单机负载越来越大,将数据库服务器与应用服务器分离。

第三版

随着访问量的继续增多,一台应用服务器不能处理达到瓶颈,就对应用服务器进行集群部署。

这也引出了一些问题:比如Session共享等。可以使用 cookie、session集中存储等方案解决。

第四版:

随着访问量的继续增多,单台数据库达到了瓶颈,使用数据库读写分离和数据同步。

这时又引出一些问题:

比如:

数据库读写分离如何实现。mysql主从模式。

数据同步如何实现。mysql主从模式。

数据库路由。mycat

第五版

商品搜索如何实现高效率,高相关检索,就引入了搜索引擎,ES等。

又引入问题:

搜索引擎索引数据如果同步,实时增量同步还是定时全量同步。

第六版

访问量持续增大,引入缓存机制。redis等。

第七版:

数据库数据量过大,进行垂直/水平拆分。拆分成订单数据库。用户数据库,商品数据库等。

第八版

访问量,数据量,持续增大,对应用进行拆分成多个没有关联的应用,比如把原本一个应用拆分成三个应用,用户系统、订单系统。

这个与分布式架构还是有点区别的,因为拆分的应用都是没有关系的,各自完成相应的功能,没有进行通信。这种架构会存在冗余的代码,比如订单系统会涉及商品跟用户,所以订单系统里面就会有相应的关于用户和商品相关的代码。

第九版

访问量,数据量,业务复杂度,持续增大,对各个模块按照一定业务,一定粒度进行抽取成一个个服务/组件,各个服务之间通过网络进行通信,完成相应业务,该架构就是分布式架构。

此时每种业务都被抽取出来独立运行,系统之间相互通信,比如订单系统用到了用户相关的,就通过与用户服务组件进行通信进行调用,完成业务逻辑处理。

 

   
次浏览       
相关文章

企业架构、TOGAF与ArchiMate概览
架构师之路-如何做好业务建模?
大型网站电商网站架构案例和技术架构的示例
完整的Archimate视点指南(包括示例)
相关文档

数据中台技术架构方法论与实践
适用ArchiMate、EA 和 iSpace进行企业架构建模
Zachman企业架构框架简介
企业架构让SOA落地
相关课程

云平台与微服务架构设计
中台战略、中台建设与数字商业
亿级用户高并发、高可用系统架构
高可用分布式架构设计与实践
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]
 
最新文章
架构设计-谈谈架构
实现SaaS(软件及服务)架构三大技术挑战
到底什么是数据中台?
响应式架构简介
业务架构、应用架构与云基础架构
最新课程
软件架构设计方法、案例与实践
从大型电商架构演进看互联网高可用架构设计
大型互联网高可用架构设计实践
企业架构师 (TOGAF官方认证)
嵌入式软件架构设计—高级实践
更多...   
成功案例
某新能源电力企业 软件架构设计方法、案例与实践
中航工业某研究所 嵌入式软件开发指南
某轨道交通行业 嵌入式软件高级设计实践
北京 航天科工某子公司 软件测试架构师
北京某领先数字地图 架构师(设计案例)
更多...