《杨波:微服务架构核心20讲》核心内容(一)
一、微服务的定义
定义一
- 微服务是一种架构风格,将单体应⽤用划分成一组小的服务,服务之间相互协作,实现业务功能
- 每个服务运行在独⽴立的进程中,服务间采⽤轻量级的通信机制协作(通常是HTTP/ JSON)
- 每个服务围绕业务能力进行构建,并且能够通过自动化机制独立地部署 很少有集中式的服务管理,每个服务可以使用不同的语言开发,使⽤不同的存储技术
参考:https://www.martinfowler.com/articles/microservices.html
定义二
- Loosely coupled service oriented architecture with bounded context
- 基于有界上下文的,松散耦合的面向服务的架构
二、什么是微服务架构
- 由一组小的服务组成,例如将单体架构应用进行拆分成多块小的独立服务,服务有多小具体看业务进行划分。
- 每个服务都是运行在独立的进程之中,以进程的方式去进行横向扩展。
- 服务之间的通信方式是轻量级的,例如HTTP协议、RPC协议。
- 一般要基于业务能力来构建微服务。
- 每块服务都是能独立部署,团队之间不用太多协调,支持快速迭代。
- 无集中式管理,每个团队管理的服务可以根据业务需要来选择相应技术栈。
- 服务之间是松散耦合的,没有强依赖,微服务基于有界上下文,每个团队有独立的数据源,独立的去演化自己的服务。
问题:
- 微服务独立部署以后给业务带来了什么好处?
- 在分布式系统中,当每个团队都有独立的数据时会带来什么挑战?
三、微服务的利弊
利:
- 强模块化边界。以服务作为组件来模块化,服务调用服务。
- 可独立部署。独立开发,独立部署,有时候不需要其他团队的协同。
- 技术多样性。每个团队可以选择自己的技术栈。
弊:
- 分布式复杂性
- 最终一致性
- 运维复杂性
- 测试复杂性
**如果你搞不不定⼀一个单块应⽤用,别指望微服务能够拯救你!
四、微服务架构的适用性
小规模应用的开发不推荐直接从微服务开始,构建成本高,所以单块优先。在交叉点可以考虑引入微服务。
五、微服务的组织架构
单体架构:从产品管理到用户体验需要协调,从用户体验到研发也需要协调,以此类推,如果从运维反馈问题到产品,这将是一个漫长的过程,产品反馈周期长,效率低。
微服务:一个团队围绕一个服务进行不断迭代,团队内部人员能够达到闭环,以平台进行交付,对外提高API,进行端到端的服务。
六、阿里巴巴的中台战略
七、服务分层概念
**BFF相关内容请参见 《微服务架构 BFF和网关是如何演化出来的》一文:
https://blog.csdn.net/weixin_45953989/article/details/119004779
八、微服务总体架构体系
《杨波:微服务架构核心20讲》核心内容(一)相关推荐
- 为什么选择微服务架构? 微服务架构的10个核心优势 总结
为什么选择微服务架构? 微服务架构的10个核心优势 总结 文章目录 为什么选择微服务架构? 微服务架构的10个核心优势 总结 1. 什么是微服务? 2. 微服务架构有哪些特征? 1)通过服务实现组件化 ...
- 云原生微服务架构实战精讲第七节 调度算法与司机乘客行程查询
第19讲:如何实现行程派发与调度算法 第 18 课时介绍了司机模拟器如何发布位置更新事件,以及行程派发服务如何处理这些事件,并维护所有可用的司机信息,本课时紧接着第 18 课时的内容,主要介绍行程派发 ...
- 基于微服务架构,改造企业核心系统之实践
2019独角兽企业重金招聘Python工程师标准>>> 1. 背景与挑战 随着公司国际化战略的推行以及本土业务的高速发展,后台支撑系统已经不堪重负.在吞吐量.稳定性以及可扩展性上都无 ...
- 云原生微服务架构实战精讲第八节 访问控制与更新策略
第24讲:服务调用失败的处理策略与实践 在微服务架构的应用中,微服务之间一般有两种类型的交互方式,一种是使用消息中间件的异步消息模式,也就是第 14 课时中提到的事件驱动设计,微服务之间进行交互的是消 ...
- 云原生微服务架构实战精讲第二节 云原生和Kubernete
第03讲:云原生应用的 15 个特征 本课时我将带你学习云原生应用. 微服务架构只是一种软件架构风格,并不限制所采用的实现技术,开发团队可以自由选择最合适的技术来实现.在第 01 课时介绍微服务架构的 ...
- 《JAVA生态圈技术总结》之 微服务架构蓝图总览
目录 一.微服务定义 1.1 定义一 1.2 定义二 二.微服务利弊 2.1 优点 2.2 缺点 三.微服务的适用性 3.1 康威法则 3.2 生产力 3.3 架构演进 四.服务分层 五.服务注册发现 ...
- 如何基于DDD构建微服务架构
微服务构建本质上是软件构建过程中长期演进积累的一系列理念.架构原则.工具和最佳实践. 领域驱动设计的软件思想体系和方法论可以用于指导微服务建模.微服务划分.微服务架构设计等相关工作,它可以促使技术人员 ...
- 一个可供中小团队参考的微服务架构技术栈
http://www.infoq.com/cn/articles/china-microservice-technique 前言 近年,Spring Cloud俨然已经成为微服务开发的主流技术栈,在国 ...
- 微服务架构(Microservices)
说在前面 好久没写博文了,心里痒痒(也许是换工作后,有点时间了吧).最近好像谈论微服务的人比较多,也开始学习一下,但是都有E文,看起来半懂不懂的. Martinfowler的< 微服务>, ...
- svn如何取消某个文件的版本管理_微服务架构如何统一管理工程配置文件
面临的问题 在分布式微服务架构系统中,业务和系统功能被拆分成了几十甚至上百个服务实例.每个服务实例就是以往单体应用时代的一个独立部署的工程.每个工程都需要自己独立的启动加载和运行时配置文件. 在项目开 ...
最新文章
- 【UIKit】表格自定义单元格(UITableViewCll)
- Python画散点图(Knn中数据)
- 神策数据杨宁:从三重“新”看金融机构财富管理转型
- android dumpsys 分析,Android开发调试性能分析工具:dumpsys
- zabbixdocker里的mysql_基于Docker安装与部署Zabbix
- java怎么一段字符串全为数字_java 如何判断一个字符串是数字
- vmware workstation 链接不上网络
- Meerkat倒下想到的:社交巨头的后院不容置喙
- 【英语学习】【Level 07】U07 Stories of my Life L1 Going to the Countryside
- SAP License:MTO和MTS的区别
- DotNetBar的初步使用
- oracle+erp+采购管理操作手册 - 图文 - 百度文库
- mysql连接服务器教程_连接 MySQL 服务器
- 短视频如何打动用户?从人的欲望出发,吸粉引流很简单
- 【应用安全】垃圾短信电话不断?手机变卡变慢?可能是共享充电宝的锅……
- 快速提高网站排名软件
- 物理:相量代数式和相量极坐标式的互相转换
- DM数据库安装过程--基于NeoKylin操作系统详解
- 关于自动生成数据集的一些事
- 2021年塔式起重机司机模拟考试题及塔式起重机司机作业考试题库