一、微服务的定义

定义一

  • 微服务是一种架构风格,将单体应⽤用划分成一组小的服务,服务之间相互协作,实现业务功能
  • 每个服务运行在独⽴立的进程中,服务间采⽤轻量级的通信机制协作(通常是HTTP/ JSON)
  • 每个服务围绕业务能力进行构建,并且能够通过自动化机制独立地部署 很少有集中式的服务管理,每个服务可以使用不同的语言开发,使⽤不同的存储技术

参考:https://www.martinfowler.com/articles/microservices.html

定义二

  • Loosely coupled service oriented architecture with bounded context
  • 基于有界上下文的,松散耦合的面向服务的架构

二、什么是微服务架构

  1. 由一组小的服务组成,例如将单体架构应用进行拆分成多块小的独立服务,服务有多小具体看业务进行划分。
  2. 每个服务都是运行在独立的进程之中,以进程的方式去进行横向扩展。
  3. 服务之间的通信方式是轻量级的,例如HTTP协议、RPC协议。
  4. 一般要基于业务能力来构建微服务。
  5. 每块服务都是能独立部署,团队之间不用太多协调,支持快速迭代。
  6. 无集中式管理,每个团队管理的服务可以根据业务需要来选择相应技术栈。
  7. 服务之间是松散耦合的,没有强依赖,微服务基于有界上下文,每个团队有独立的数据源,独立的去演化自己的服务。

问题:

  1. 微服务独立部署以后给业务带来了什么好处?
  2. 在分布式系统中,当每个团队都有独立的数据时会带来什么挑战?

三、微服务的利弊

利:

  1. 强模块化边界。以服务作为组件来模块化,服务调用服务。
  2. 可独立部署。独立开发,独立部署,有时候不需要其他团队的协同。
  3. 技术多样性。每个团队可以选择自己的技术栈。

弊:

  1. 分布式复杂性
  2. 最终一致性
  3. 运维复杂性
  4. 测试复杂性

**如果你搞不不定⼀一个单块应⽤用,别指望微服务能够拯救你!

四、微服务架构的适用性

小规模应用的开发不推荐直接从微服务开始,构建成本高,所以单块优先。在交叉点可以考虑引入微服务。

五、微服务的组织架构

单体架构:从产品管理到用户体验需要协调,从用户体验到研发也需要协调,以此类推,如果从运维反馈问题到产品,这将是一个漫长的过程,产品反馈周期长,效率低。

微服务:一个团队围绕一个服务进行不断迭代,团队内部人员能够达到闭环,以平台进行交付,对外提高API,进行端到端的服务。

六、阿里巴巴的中台战略

七、服务分层概念

**BFF相关内容请参见 《微服务架构 BFF和网关是如何演化出来的》一文:

https://blog.csdn.net/weixin_45953989/article/details/119004779

八、微服务总体架构体系

《杨波:微服务架构核心20讲》核心内容(一)相关推荐

  1. 为什么选择微服务架构? 微服务架构的10个核心优势 总结

    为什么选择微服务架构? 微服务架构的10个核心优势 总结 文章目录 为什么选择微服务架构? 微服务架构的10个核心优势 总结 1. 什么是微服务? 2. 微服务架构有哪些特征? 1)通过服务实现组件化 ...

  2. 云原生微服务架构实战精讲第七节 调度算法与司机乘客行程查询

    第19讲:如何实现行程派发与调度算法 第 18 课时介绍了司机模拟器如何发布位置更新事件,以及行程派发服务如何处理这些事件,并维护所有可用的司机信息,本课时紧接着第 18 课时的内容,主要介绍行程派发 ...

  3. 基于微服务架构,改造企业核心系统之实践

    2019独角兽企业重金招聘Python工程师标准>>> 1. 背景与挑战 随着公司国际化战略的推行以及本土业务的高速发展,后台支撑系统已经不堪重负.在吞吐量.稳定性以及可扩展性上都无 ...

  4. 云原生微服务架构实战精讲第八节 访问控制与更新策略

    第24讲:服务调用失败的处理策略与实践 在微服务架构的应用中,微服务之间一般有两种类型的交互方式,一种是使用消息中间件的异步消息模式,也就是第 14 课时中提到的事件驱动设计,微服务之间进行交互的是消 ...

  5. 云原生微服务架构实战精讲第二节 云原生和Kubernete

    第03讲:云原生应用的 15 个特征 本课时我将带你学习云原生应用. 微服务架构只是一种软件架构风格,并不限制所采用的实现技术,开发团队可以自由选择最合适的技术来实现.在第 01 课时介绍微服务架构的 ...

  6. 《JAVA生态圈技术总结》之 微服务架构蓝图总览

    目录 一.微服务定义 1.1 定义一 1.2 定义二 二.微服务利弊 2.1 优点 2.2 缺点 三.微服务的适用性 3.1 康威法则 3.2 生产力 3.3 架构演进 四.服务分层 五.服务注册发现 ...

  7. 如何基于DDD构建微服务架构

    微服务构建本质上是软件构建过程中长期演进积累的一系列理念.架构原则.工具和最佳实践. 领域驱动设计的软件思想体系和方法论可以用于指导微服务建模.微服务划分.微服务架构设计等相关工作,它可以促使技术人员 ...

  8. 一个可供中小团队参考的微服务架构技术栈

    http://www.infoq.com/cn/articles/china-microservice-technique 前言 近年,Spring Cloud俨然已经成为微服务开发的主流技术栈,在国 ...

  9. 微服务架构(Microservices)

    说在前面 好久没写博文了,心里痒痒(也许是换工作后,有点时间了吧).最近好像谈论微服务的人比较多,也开始学习一下,但是都有E文,看起来半懂不懂的. Martinfowler的< 微服务>, ...

  10. svn如何取消某个文件的版本管理_微服务架构如何统一管理工程配置文件

    面临的问题 在分布式微服务架构系统中,业务和系统功能被拆分成了几十甚至上百个服务实例.每个服务实例就是以往单体应用时代的一个独立部署的工程.每个工程都需要自己独立的启动加载和运行时配置文件. 在项目开 ...

最新文章

  1. 【UIKit】表格自定义单元格(UITableViewCll)
  2. Python画散点图(Knn中数据)
  3. 神策数据杨宁:从三重“新”看金融机构财富管理转型
  4. android dumpsys 分析,Android开发调试性能分析工具:dumpsys
  5. zabbixdocker里的mysql_基于Docker安装与部署Zabbix
  6. java怎么一段字符串全为数字_java 如何判断一个字符串是数字
  7. vmware workstation 链接不上网络
  8. Meerkat倒下想到的:社交巨头的后院不容置喙
  9. 【英语学习】【Level 07】U07 Stories of my Life L1 Going to the Countryside
  10. SAP License:MTO和MTS的区别
  11. DotNetBar的初步使用
  12. oracle+erp+采购管理操作手册 - 图文 - 百度文库
  13. mysql连接服务器教程_连接 MySQL 服务器
  14. 短视频如何打动用户?从人的欲望出发,吸粉引流很简单
  15. 【应用安全】垃圾短信电话不断?手机变卡变慢?可能是共享充电宝的锅……
  16. 快速提高网站排名软件
  17. 物理:相量代数式和相量极坐标式的互相转换
  18. DM数据库安装过程--基于NeoKylin操作系统详解
  19. 关于自动生成数据集的一些事
  20. 2021年塔式起重机司机模拟考试题及塔式起重机司机作业考试题库

热门文章

  1. i春秋python_用python爬取i春秋的课程
  2. 动手学深度学习-(李沐)PyTorch版本
  3. 新冠疫情下的物联网行业的机遇
  4. 点击率和曝光率的区别是什么?
  5. linux嵌入式面试题合集,Linux嵌入式经典面试题
  6. ORACLE +win2003 群集手记
  7. 过关检测-Lv3_ 数据结构
  8. C/C++:system()函数的用法
  9. leetcode-SQL-1407. 排名靠前的旅行者
  10. MATLAB算法实战应用案例精讲-【自动驾驶】环境感知