写在前面的话

Stay Hungry Stay Foolish!!!

每天进步一点点!!!

《每日一读》是博主每日学习的一篇文章所记录的笔记,大多数是提取文章中关键内容而成;文章类型不限,内容不限。

意义:培养自己的阅读能力,学习更多的知识

郑重声明:如果涉及到文章侵权深感抱歉,请及时联系我我会第一时间删除,谢谢!!

总结

细细体会服务架构演进的步骤来看,无非是在不断的解决新的问题而产生新的架构,这就好似在这条路上不断循环

  1. 确定新的问题域
  2. 抽象新的问题域,产生新解决方案
  3. 出现新的问题域

微服务架构不是这条路上的终点,这就好比现在又早就出现的云原生、Serverless、ServiceMesh、PAAS、SAAS等,当然这些出现的新的解决方案也都是终点;

在未知的道路上很崎岖,但是却永远都不会有终点的那一天,我们要不断的探索未知,解决未知。

正文

  • 从单体到微服务,这些年架构的演变

关键字

  • 前后端分离
  • 分布式
  • 微服务
  • DDD(领域驱动设计)

演变路径

  1. 单体应用:数据库、服务部署在同一台机器上
  2. 单数据库多应用架构
  3. 读写分离数据库架构 + 缓存(CDN、Redis)
  4. 使用消息队列的架构
  5. 面向服务的架构(SOA)
  6. 微服务架构:API-Gateway、服务发现、熔断机制、服务部署

演进

1)单体应用 -> 单数据库多应用架构

原因:用户增加、业务变得复杂、系统响应速度变慢

方案:水平扩容

2)单数据库多应用架构 -> 读写分离数据库架构

原因:系统业务功能增加,数据库查询成为瓶颈,查询时间慢,整体响应变慢

方案:主从分离,CDN及业务缓存(Redis)

3)读写分离数据库架构 -> 消息队列架构

原因:存在耗费大量服务器资源及耗时较长的业务;流量瞬增场景

方案:消息队列

4)消息队列架构 -> 面向服务架构(SOA)

原因:系统复杂度增加、参与开发者变多

方案:单服务拆分为多个服务

典型案例:SSO单点登录

5)面向服务架构(SOA) -> 微服务架构

原因:系统复杂度增加,不同应用和数据之间互相依赖,逻辑纠缠不清,项目的部署进入了混沌状态

方案:微服务,解耦;将不同职责的服务独立部署,从而实现服务内部高内聚,服务之间低耦合的效果,让开发变得更为灵活!

摘录

架构也很难一开始就设计的完美,架构不是设计出来的,甚至不能被设计,只能在需求的变化中不断演进。架构师的工作不太像建筑师那样构建大的蓝图,更像药剂师那样对症治病、照方抓药。就像《大教堂与集市》说的那样,“软件很大程度上是一个服务行业,虽然长期以来都毫无根据地被错认为是制造行业。”

就像生命在自然环境中不断适应,才得以演化;我们的架构需要根据需求中不断改进,才得以敏捷。

单体 soa 微服务 区别_每日一读-从单体到微服务,这些年架构的演变相关推荐

  1. 单体 soa 微服务 区别_漫谈何时从单体架构迁移到微服务?

    面对微服务如火如荼的发展,很多人都在了解,学习希望能在自己的项目中帮得上忙,当你对微服务的庐山真面目有所了解后,接下来就是说服自己了,到底如何评估微服务,什么时候使用微服务,什么时间点最合适,需要哪些 ...

  2. 分布式和微服务区别_深度解析spring cloud分布式微服务的实现

    分布式系统 微服务就是原来臃肿的项目拆分为多个模块互不关联.如:按照子服务拆分.数据库.接口,依次往下就更加细粒度,当然运维也就越来越难受了. 分布式则是偏向与机器将诺大的系统划分为多个模块部署在不同 ...

  3. emq的客户端与服务端_使用 EMQ X Cloud 物联网 MQTT 云服务

    使用 EMQ X Cloud 物联网 MQTT 云服务 2020-09-01 摘要 在数分钟内创建全托管高可用 MQTT 集群,快速接入物联网设备并立即开始产品原型设计与应用开发,将物联网数据存储到华 ...

  4. 分布式和微服务区别_分布式、集群、微服务到底有啥区别?

    点击上方"不太厉害的程序猿",选择"置顶或者星标" 你关注的就是我关心的! 来源说明:部分信息来源于csdn 概念: 集群是个物理形态,分布式是个工作方式. 1 ...

  5. 微服务团队_为什么团队文化对于成功的微服务至关重要

    微服务团队 by Jake Lumetta 杰克·卢米塔(Jake Lumetta) 为什么团队文化对于成功的微服务至关重要 (Why Team Culture is Critical for Suc ...

  6. 25服务端_手把手教你使用 OpenResty 搭建高性能服务端!

    点击蓝色"架构文摘"关注我哟 加个"星标",每天上午 09:25,干货推送! 来源:https://www.jianshu.com/p/09c17230e1a ...

  7. 422器件与lvds接收器的区别_一文读懂RS232与RS422及RS485三者之间的特性与区别

    好多人说,现在都网络时代了,咋还谈到了什么这个话题呢?其实想想很简单,这个是建立在原来工业控制网络基础上. 凡是从业安防十几年以上的基本上都用过485传输设备,那时候云台是需要单独控制线的.即使是在N ...

  8. mesh和wifi中继的区别_一文读懂:小米Wi-Fi6路由器上的Mesh到底是什么?

    ​​最近,小米第二款Wi-Fi6路由器,也就是小米路由器AX1800升级支持了Mesh技术,拥有两台以上AX1800的用户可以将它们进行Mesh组网,做到全屋信号无缝覆盖,走到哪都能享受高速Wi-Fi ...

  9. java做h5小游戏服务端_神藏西游H5游戏源码服务端+客户端+搭建教程

    源码预览 源码介绍 教程如下: 1.cd / 把下载好的文件传到服务器根目录下面 2.打开Xshell 安装java 输入 sh sd 回车 输入1 回车 3.安装宝塔 输入 sh sd 回车 输入2 ...

最新文章

  1. python--二进制的用法
  2. iOS iOS9下修改回HTTP模式进行网络请求
  3. WEB Service 下实现大数据量的传输
  4. 我在美团Android研发岗工作的那5年,含泪整理面经
  5. 阿里云 AI 编辑部获 CCBN 创新奖,传媒行业解决方案背后的黑科技
  6. java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.login_jsp
  7. TCP/IP详解学习笔记(1)
  8. Dubbo学习总结(1)——Dubbo入门基础与实例讲解
  9. CodeForces405B - Jzzhu and Sequences 矩阵快速幂
  10. Microsoft AJAX Library对 String的扩展
  11. 医院职工离职申请证明模板,共计10篇
  12. 华为OJ编程 动态规划类
  13. 传奇服务器怎么修改升级武器成功,传奇服务端中设置装备元素升级不会破碎教程...
  14. 芯片达人教你如何看数据手册
  15. 计算机绘图员技师证怎么考,地图制图员》与 《摄影测量员》中级高级工程测量职业标准-如何考-考什么内容...
  16. vgs是什么意思有什么用_Linux中vgs命令起什么作用呢?
  17. 我的世界java版高效率刷怪塔_我的世界超高效率刷怪塔制作教程 砍怪砍到手抽筋...
  18. jQuery带logo的网页二维码生成
  19. 什么事LLVM和Clang?Clang与GCC有什么区别?Clang如何使用?
  20. 使用 AppFuse 的七个理由(中英文两版)

热门文章

  1. 2015年上海现场赛重现 (A几何, K暴力搜索)
  2. Firefox内存占用过高解决方法
  3. ios开发之手势处理 之手势识别一
  4. (剑指Offer)面试题49:把字符串转换为整数
  5. 模拟虚拟的文件系统initrd/initramfs
  6. java总结第四次//常用类
  7. iOS - 发送邮件
  8. 获取本机外网ip地址
  9. JAVA 多线程学习总结
  10. Android中使用Intent进行窗体切换,并且传值和自定义类的对象详解