单体架构

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。

单体架构的优缺点如下:

优点:

  • 架构简单

  • 部署成本低

缺点:

  • 耦合度高(维护困难、升级困难)

分布式架构

分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。

分布式架构的优缺点:

优点:

  • 降低服务耦合

  • 有利于服务升级和拓展

缺点:

  • 服务调用关系错综复杂

分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:

  • 服务拆分的粒度如何界定?

  • 服务之间如何调用?

  • 服务的调用关系如何管理?

人们需要制定一套行之有效的标准来约束分布式架构。

微服务

微服务的架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责

  • 自治:团队独立、技术独立、数据独立,独立部署和交付

  • 面向服务:服务提供统一标准的接口,与语言和技术无关

  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。

因此,可以认为微服务是一种经过良好架构设计的分布式架构方案

但方案该怎么落地?选用什么样的技术栈?全球的互联网公司都在积极尝试自己的微服务落地方案。

其中在Java领域最引人注目的就是SpringCloud提供的方案了。

认识微服务-服务架构演变相关推荐

  1. [知乎] 端游、手游服务端架构演变

    本文版权归 知乎 韦易笑 所有,此处为转载+收藏,如有再转,请于作者处获得授权并于文章篇头处标明原创作者及出处,以示尊重! 作者:韦易笑 链接:https://www.zhihu.com/questi ...

  2. 腾讯内部技术:《轩辕传奇》服务器架构演变

    今天给大家分享一下腾讯游戏<轩辕传奇>的服务器架构,讲服务器架构如果只是得一个结果,把架构示意图展示一下,这种没有什么意义,今天我想从一个每个人都会写的最简单的架构模型,如何一步一步的演变 ...

  3. 基于SpringCloud的微服务架构演变史?

    系统架构演变概述 在公司业务初创时期,面对的主要问题是如何将一个想法变成实际的软件实现,在这个时候整个软件系统的架构并没有搞得那么复杂,为了快速迭代,整个软件系统就是由"App+后台服务&q ...

  4. 系统架构演变:SOA、微服务架构的区别和联系

    1.系统架构演变 随着互联网的发展,网站应用的规模不断扩大.需求的激增,带来的是技术上的压力.系统架构也因此也不断的演进.升级.迭代.从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服 ...

  5. 分布式架构演变之路,微服务、限流、熔断....

    本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件.本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节. 要理解微服务,首先要先理解不是微服 ...

  6. Elasticseach:从微服务架构演变到大宽表思维的架构转变

    序言 图示:Elasticsearch 在DB-Engine综合排名第8 Elasticsearch 简称"ES", 在DB-Engine 综合排名第8,已经持续了相当长的时间,按 ...

  7. Spring Cloud Alibaba 微服务1,系统架构演变 + Nginx反向代理与负载均衡

    目录 专栏导读 一.系统架构演变 二.什么是Nginx? 三.servername匹配规则 四.正向代理与反向代理 1.正向代理 2.反向代理 3.LVS 五.负载均衡策略 1.轮询 2.权重 3.i ...

  8. 保姆级教程!Golang微服务简洁架构实战

    导语 | 本文从简洁架构的理论出发,依托trpc-go目录规范,简单阐述了整体代码架构如何划分,具体trpc-go服务代码实现细节,和落地步骤,并讨论了和DDD的区别.文章源于我们组内发起的go微服务 ...

  9. 万字长文解析:分布式架构、SOA、微服务架构、API网关、ESB服务总线架构之间的关联及演进

    1架构演进 架构十五年:改变的是形态,不变的是目的 业务驱动架构形态变化 过去十几年,随着互联网发展以及业务的多样化,系统的架构也在不断发生变化,总体上来说大体经历了从单体应用架构-垂直应用架构-分布 ...

最新文章

  1. mysql useradd_useradd失败
  2. 东莞厚街工业机器人展会_工业机器人四大家族齐聚!东莞将在12月举办智博会...
  3. 产生数(Floyd)
  4. ARM LCD简单绘图API
  5. 从零搭建分布式文件系统MinIO比FastDFS要更合适
  6. C#值类型和引用类型的不同
  7. 华为双系统手机可以刷成单系统_「冯站长之家」今日聚焦:重大突破!华为手机鸿蒙系统2.0,正式面世!骂华为的“喷子”,可以休矣!...
  8. 在 Microsoft word中插入代码
  9. Ubuntu和Mac使用gdbserver远程调试android源码
  10. c++ string取子串_LeetCode第三题 “无重复字符的最长子串” 从低效率到高效率
  11. 绿联串口线linux驱动下载,绿联usb转串口驱动
  12. 微信订阅号获取openid
  13. 博士申请 | 阿尔伯塔大学招收人工智能方向全奖博士生、硕士生
  14. android 长按保存图片,安卓机上base64图片无法在微信中长按保存?
  15. 技术、艺术与禅道《禅与计算机程序设计艺术》 / 陈光剑
  16. 马上就博士毕业了,博士毕业论文外审结果回来了
  17. (三十六)Delta中性对冲与Delta-Gamma中性对冲
  18. 基于红外感应的远距离智能跟随小车,自动跟随小车
  19. linux查看内存命令(查看进程虚拟内存)free命令、vmstat命令、pmap命令(free指令、vmstat指令、pmap指令)
  20. [ 数通面试 ] 奇安信技术支持工程师 面试分享

热门文章

  1. 让Entity Framework支持MySql数据库
  2. dropdownlist 实现无限级树形菜单
  3. 怎么样才能写出出色的代码
  4. linux中用anaconda使用不同版本python
  5. 蓝桥杯-题目:猜算式
  6. 5.1 jQuery基础
  7. 【转】crontab 详解
  8. Developer Express 中Gridcontrol获取选中行单元格的值
  9. (jQuery,SVG)使用jQuery和svg仿QQ地图测距功能(抛砖引玉)
  10. GDIDrawing3——GDI+绘图(三)