微服务精讲

微服务架构

组织架构和技术架构

1、什么是微服务架构?

微服务架构

  • 一组小的服务
  • 独立的进程
  • 轻量级通信
  • 基于业务能力
  • 独立部署
  • 无集中式管理

Loosely Coupled Service Oriented architecture with bounded Context

2、微服务架构的利弊?

  • 强模块化边界
  • 可独立部署
  • 技术多样性

  • 分布式复杂性
  • 最终一致性
  • 运维复杂性
  • 测试复杂性

3、康威法则和微服务给架构师怎样的启示?

康威法则:设计系统的组织,其产生的设计等价于组织的沟通结构

4、企业应该在什么时候开始考虑引入微服务?

单块优先

image-20200816123758794

5、什么样的组织架构更适合微服务?

由端到端的产品线延伸至跨职能的微服务架构

End-End Ownershop

Architect —> Design —> Develop —> Review —> Test —> Deploy —> Run —> Support

端到端的产品线:传统的单体架构开发方式

跨职能的产品线:将单体架构拆分为多个模块,每个模块由各自的完整团队进行组织开发

image-20200816123851961

6、阿里巴巴的微服务中台战略

大中台、小前台理念:赋能业务的持续创新,产生出各种不同的业务模式,快速响应市场需求

image-20200309144844408

7、如何给出一个清晰简洁的服务分层方式

image-20200309144844408

8、微服务总体技术架构设计

  • 接入层:外部+内部LB
  • 网关层:内部GWH5GW、无线GW、第三方GW、开放平台GW
  • 业务服务层:聚合服务、基础服务
  • 支撑服务:注册发现、集中配置、容错限流、认证授权、日志聚合、监控告警、后台服务(DB、MQ、Cache、Job
  • 平台服务:发布系统、集群资源调度、镜像治理、资源治理、IAMIdentity and Access Management:身份识别与访问管理)
  • 基础设施层:计算、网络、存储、NOC监控、安全、IDC

image-20200816123926536

9、微服务最经典的三种服务发现机制

服务网格【Service Mesh】(服务发现)

  • 使用硬件LB,在用DNS进行域名解析的时候,进行流量分发
  • LB迁移到应用进程内
  • LB以独立进程的形式,部署到一台独立的主机上

服务发现~独立LB

image-20200816123950409

服务发现~进程内LB

image-20200816124044054

服务发现~主机独立进程LB

image-20200816124103618

10、微服务API服务网关原理

作用:屏蔽内部服务细节,对外提供统一接口

  • 反向路由
  • 认证安全
  • 限流熔断
  • 日志监控

image-20200816124126355

11、微服务API 服务开源网关Zuul

image-20200816124147134

image-20200816124200620

12、Netflix微服务路由发现体系

image-20200816124217577

13、集中式配置中心的作用和原理

image-20200816124227675

image-20200816124237360

14、微服务通讯方式RPC vs REST

RPC REST
耦合性 强耦合 松散耦合
消息协议 二进制thrift, protobuf, avro 文本XML,JSON
通讯协议 TCP HTTP/HTTP2
性能 —般低于RPC
接口契约IDL Thrift, protobufidl Swagger
客户端 强类型客户端,—般自动生成,可支持多语言客户端 一般HTTP client可访问,也可以自动生成强类型客户端,可支持多语言客户端
案例 Dubbo, motan,Tars,grpc, thrift Spring MVC/Boot,Jax-rs,dropwizard
开发者友好 客户端比较方便,但是二进制消息不可读 文本消息开发者可读,浏览器就可以访问
对外开放 对外一般需要转换成REST/文本协议 直接可以对外开放

15、微服务框架需要考虑哪些治理环节?

image-20200816124623556

16、微服务监控系统分层和监控架构

端到端的全链路监控

四层监控体系和监控分类

image-20200816124657809

监控架构和主流技术栈

image-20200816125112844

Trace调用链监控原理

image-20200816125158926

17、微服务的调用链监控该如何选型?

CAT Zipkin Pinpoint
调用链可视化
报表 非常丰富
ServerMap 简单依赖图 简单
埋点方式 侵入 侵入 不侵入字节码增强
Heartbeat支持
Metric支持
Java/.Net客户端支持 只有Java
Dashboard中文支持
社区支持 好,文档较丰富,作者在 携程点评 好,文档一般,暂无中文社区 -般,文档缺,无中文社 区
国内案例 携程、点评、陆金所 京东、阿里不开源 暂无
源头祖先 eBayCAL~Centralized ApplicationLogging GoogleDapper GoogleDapper

18、微服务的容错限流是如何工作的?

Netflix Hystrix断路器原理

image-20200816124736570

19、Docker 容器部署技术 & 持续交付流水线

基于镜像治理和多环境的持续交付流水线

image-20200816124918293

蓝绿、金丝雀和灰度发布

image-20200816124855944

20、容器集群调度和基于容器的发布体系

资源调度框架Mesos架构

image-20200816124829617

基于容器云发布体系

image-20200816124757930

posted @ 2021-03-25 12:54  ice_image  阅读(79)  评论(0编辑  收藏  举报