美文网首页
分布式系统架构

分布式系统架构

作者: zorkelvll | 来源:发表于2019-03-28 12:51 被阅读0次
image

关键词:分布式系统架构、消息中间件

ZERO

    持续更新 请关注:https://zorkelvll.cn/blogs/zorkelvll/articles/2018/11/18/1542543212604

背景

 分布式系统,主要是在支撑**高并发访问量和海量数据**的大型网站中设计,核心是**存储(数据库)和计算**(应用服务器处理业务和逻辑)

** 一、分布式系统架构的演进过程:**

  • 单机系统:应用&数据库 在单个同一台机器上,应用内部各模块通过JVM内部方法调用进行交互,应用和数据库之间通过如JDBC访问
  • 数据库与应用分离:在单机负载告警情况下,将数据库与应用分开在两台机器上,开发部署上仅是数据库地址改为非本机地址
  • 应用服务器集群:在应用服务器负载告警情况下,考虑将应用服务器优化为集群方式(两个问题:一是客户端对多个应用服务器的选择问题【DNS或者负责均衡 以解决该问题】;Session问题【Session Sticky或者Session Replication或者Session数据集中存储或者Cookie Based 一般采用集中存储或Sticky以解决该问题,二者各有优劣】)
  • 数据库读写分离:在数据库读压力大情况下,或者用数据库作为读库(数据同步问题、应用数据源选择问题),或者用搜索引擎作为读库(搜索集群),或者使用缓存以加速数据读取速度(数据缓存-KV、页面缓存-ESI标签 => 缓存命中率问题、数据变更时失效和更新问题、缓存服务器扩容或缩容平滑操作问题),或者引用分布式存储系统(分布式文件系统、分布式Key-Value系统和分布式数据库)
  • 数据库性能或容量瓶颈:当读写分离之后数据库仍然无法承受更高的性能要求或存储容量,或者根据业务垂直拆分(事务问题:或者使用分布式事务但性能不如单机,或者去掉事务或者不追求强事务),或者根据数据量水平拆分(SQL路由问题,主键问题)
  • 应用发展问题:应用功能越来越多导致臃肿,或者根据业务拆分应用(应用间没有调用,会有一些重复或相似的代码),或者服务化改造(业务功能间相互调用、共享代码封装在各个服务中心、数据库的交互由服务中心负责,一些支撑的组件问题)

** 二、消息中间件:**

MOM(Message-oriented middleware),即面向消息的系统(消息中间件)是分布式系统中完成消息的发送和接收的基础软件

消息中间件的主要作用,就是**异步和解耦**

【读书系列】

《大型网站系统与Java中间件实践》,曾宪杰,电子工业出版社

相关文章

网友评论

      本文标题:分布式系统架构

      本文链接:https://www.haomeiwen.com/subject/bxqevqtx.html