微服务架构
微服务架构核心20讲
01 | 微服务定义
微服务是一种架构风格
大中台,小前台
定义一
- 一种架构风格,将单体应⽤划分成一组小的服务,服务之间相互协作,实现业务功能
- 每个服务运行在独立的进程中,服务间采用轻量级的通信机制协作(通常是HTTP/ JSON)
- 每个服务围绕业务能力进行构建,并且能够通过自动化机制独立地部署
- 很少有集中式的服务管理,每个服务可以使⽤不同的语言开发,使用不同的存储技术
参考:https://www.martinfowler.com/articles/microservices.html
定义二
Loosely coupled service oriented architecture with bounded context
基于有界上下文的,松散耦合的⾯向服务的架构
- 服务之间应该是松散耦合,不能强依赖
- 本质上还是SOA,只是更细化和落地
- 局部状态,每个团队有各自的数据源
02 | 微服务的利弊
利
- 强模块化边界
- 可独⽴立部署
- 技术多样性
弊
- 分布式系统复杂性
- 最终一致性
- 运维复杂性
- 测试复杂性
03 | 康威法则和微服务给架构师怎样的启示?
康威法则
设计系统的组织,其产⽣的架构设计等价于组织间的沟通结构
04 | 企业应该在什么时候开始考虑引入微服务?
初期考虑单块优先(业务的模块化)
一般地,百人研发团队考虑引入微服务
因为微服务需要前期的基础设施的投入,复杂性很高
05 | 什么样的组织架构更适合微服务?
从传统职能型到跨职能产品型
End-end owership 团队内部形成闭环
“两个披萨”理论:12人
06 | 如何理解阿里巴巴提出的微服务中台战略?
大中台,小前台
07 | 如何给出一个清晰简洁的服务分层方式?
08 | 微服务总体技术架构体系是怎样设计的?
09 | 微服务最经典的三种服务发现机制
服务发现~独立LB
服务发现~进程内LB
服务发现~主机独立进程LB
10 | 微服务 API 服务网关(一)原理
网关:门卫
作用:
- 反向路由
- 认证安全
- 限流熔断
- 日志监控
11 | 微服务 API 服务网关(二)开源网关 Zuul
12 | 跟 Netflix 学习微服务路由发现体系
- Zuul
- eureka
- 可参考Consul Template这样的组件,它可以监视Consul中服务变化,动态更新nginx模板。
13 | 集中式配置中心的作用和原理是什么?
14 | 微服务通讯方式 RPC vs REST
15 | 微服务框架需要考虑哪些治理环节?
16 | 微服务监控系统分层和监控架构
17 | 微服务的调用链监控该如何选型?
18 | 微服务的容错限流是如何工作的?
Netflix Hystrix 断路路器器
- 熔断
- 限流
- 隔离
- 降级
19 | Docker 容器部署技术 & 持续交付流水线
- 环境一致性
- 镜像部署
20 | 容器集群调度和基于容器的发布体系
- mesos
- kubernetes (K8s)