极客时间专栏——微服务架构核心20讲

时间:Sept. 22, 2019 分类:

目录:

微服务架构的定义

微服务架构的特点

  • 一组小的服务(具体小到什么程度)
  • 独立的进程
  • 轻量级通信
  • 基于业务能力
  • 独立部署(迭代效率会高很多)
  • 无集中式管理

微服务的利弊权衡

  • 强化模块边界 以前是用类,之后是类库组件
  • 可独立部署
  • 技术多样性

  • 分布式复杂性
  • 最终一致性(数据同步的问题)
  • 运维复杂性
  • 测试复杂性

康威模式和微服务架构的启示

企业什么时候引入微服务

略,更多的是在企业到一定程度再进行引入

什么样的组织架构适合微服务

微服务的中台战略

服务分层方式

聚合和裁剪

微服务技术架构体系

网关层更多的是做限流和熔断等

微服务最经典的服务发现机制

  • DNS
  • 服务注册 服务请求的时候直接请求对应服务
  • 通过集中的LB获取服务注册

API网关原理

三层

  • 接入
  • API网关 反向代理,认证安全,限流熔断,日志监控等
  • 服务

API网关Zuul

  • 支持热插拔过滤规则
  • 支持过滤规则共享变量

Netflix的路由发现体系

包括

  • 网关层 Zuul
  • 服务注册中心 Eureka

配置中心

配置的审计,谁修改的,当时为什么这么修改,可以进行追溯

通讯方式

RPC和REST

\ RPC REST
耦合性 强耦合(需要定制一些消息格式) 松散耦合
消息协议 二进制thrift,protobuf,auro 文本xml或json
通讯协议 TCP HTTP/HTTP2
性能 一般低于RPC
接口契约 thirft swagge
客户端 强类型客户端 一般http客户端
案例 dubbo,thirft,grpc(可用TCP和HTTP2) SpringMVC
可读性 二进制不可读 文本消息可读
对外开放 需要协议转换 直接对外开放

治理环节

  • 服务注册发现
  • 负载路由
  • 日志监控
  • Metrics
  • 调用链埋点
  • 限流熔断
  • 安全和访问控制(钱相关进行黑名单)
  • Rest/RPC支持,序列化Json,Xml
  • 代码生成
  • 统一异常处理
  • 文档
  • 配置集成
  • 后台服务集成DB,Cache,Mq

监控分层

  • 端用户体验监控(性能,返回码,城市和地区,运营商,版本,系统等)
  • 业务监控(核心指标,登录,注册,下单支付等)
  • 应用层监控(URL,Service,Sql,平响,QPS)
  • 系统层监控(CPU,内存,网络,磁盘)
  • 基础设施(网络流量,丢包等)

调用链监控选型

容错限流

  • 熔断
  • 隔离(服务器资源隔离)
  • 限流
  • 降级(使用其他的函数等)

容器

基于容器调度