zoukankan      html  css  js  c++  java
  • 微服务精讲

    微服务架构

    组织架构和技术架构

    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

  • 相关阅读:
    Codeforces Round #527 (Div. 3) B. Teams Forming
    Train Problem I (栈的基本运用)
    浙江中医药大学第十二届大学生程序设计竞赛 J. Jhadgre爬楼梯
    判断二进制半整数
    简易连连看
    Codeforces Round #527 (Div. 3) A. Uniform String
    求字符串中出现次数最多的字符 JAVA
    母猪的故事 (递推题)
    C#判断文件和文件夹是否存在 不存在则创建
    C# 数据库备份与还原 小妹做了一个winform系统,需要对sql2000数据库备份和还原(小妹妹你太狠了)
  • 原文地址:https://www.cnblogs.com/ice-image/p/14576920.html
Copyright © 2011-2022 走看看