2016书单总结--分布式服务框架原理与实战

31 篇文章 0 订阅
14 篇文章 0 订阅

2016书单总结–分布式服务框架原理与实战

  1. MVC–RPC–SOA–MSA
    MVC(model-view-controller)–垂直架构,同进程,本地访问,由于维护成本、团队效率、定制周期、可靠性原因转为RPC

*RPC(remote-produce-call)–服务提供者、服务发布者、本地服务代理、通信、序列化、
(Thrift(IDL)、Avro、Hessian)、跨进程访问,由于服务治理,转向SOA*

*SOA(service oriented architecture)–服务松耦合、服务无状态、服务可发现、可服务治理、服务化,由于原子服务的独立性,转向MSA
三个关键点–通信、序列化、协议栈
三个流行–阿里dubbo、淘宝hsf、亚马逊coral service*

MSA(micro service architecture)–服务原子化、独立化
2. 分布式服务框架特型–CCDFGGPPPRRV–12特性
C–control/流量控制–当资源成为瓶颈时,服务框架对消费者进行限流,保护核心功能

    - 静态流控--针对访问流速(QPS)、动态配额分配(指定T内分配QPS)、动态配额申请制(留一部分需要的再申请)
    - 动态流控--保住系统资源和应用资源(动态流控因子、分级流控、并发控制、连接控制)

C–caller/服务调用–同步/异步

    - 服务调用两种模式--OneWay(只有请求,没有应答/消息推送)、请求-应答模式(HTTP)
    - 同步服务调用--T=t1+t2+t3+t4
    - 异步服务调用--Future/Future-Listener
    - 并行服务调用--并发调用
    - 泛化调用--泛化引用(客户端的POJO用MAP)/泛化实现(服务端的POJO用MAP)

D–degrade/服务降级–保障核心SLA,进行容错/屏蔽降级

    - 容错降级--对故障服务做业务逻辑放通
    - 屏蔽降级--将非核心业务调用空、异常、执行本地特定操作

F–fail/集群容错–最终的服务调用成功/通信故障、服务端超时、服务端调用失败

    - Failover(失败自动切换)--设置最多调用次数(3)--幂等性服务(调用1次与调用N次效果相同)
    - Failback(失败通知)--失败通知消费者,尤其决定后续如何处理
    - Failcache(失败缓存)--失败后,在指定T周期进行N次重发
    - Failfast(快速失败)--失败后,忽略异常,保障核心服务
    - 容错机制扩展

G–gray/服务灰度发布–在白与黑之间,能够平滑过渡的一种发布方式

    - AB test--一部分人用B,一部分人用A,当B没问题,A的那部分再转为B

G–govern/服务治理–满足线下管控,线上运行

    - 服务建模、服务组装、服务部署、服务管理
    - 服务治理目标--防止业务服务架构腐化、快速故障定界定位、服务微管控、服务生命周期管理

P–publish/服务发布和引用–将本地接口发布为远程服务

    - 支持XML、注解、API
    - 服务发布设计--本地实现类封装成代理、服务发布指定协议、服务提供者信息注册
    - 服务引用设计--本地接口调用转换成远程服务调用、服务地址本地缓存、远程服务引用
    - 最佳实践--对等设计原则、启动顺序原则、配置扩展、警惕网络风暴

P–parmeter/参数引用–服务发布者与服务提供者之间进行参数的传递

    - 内部传参--业务内部传递参数、服务框架与业务之间
    - 外部传参--消费者与提供者之间(保留Map或自定义参数)

P–priority/服务优先级–支持按照用户配置的优先级进行服务调用

    - 基于线程调度器方案
    - Java优先队列
    - 加权优先队列
    - 服务迁入迁出

R–route/服务路由–消费者如何选择合适的服务提供者

    - 透明化路由--基于服务注册中心的订阅发布(dubbo的zookeeper)/消费者缓存服务提供者地址
    - 负载均衡(RRCHA)--随机、轮询、服务调用时延(差值)、一致性哈希(相同的请求发往同一提供者)、粘滞连接(保持连接的状态)
    - 本地路由优先策略--injvm/innative
    - 路由规则--灵活配置需求、基于表达式的条件路由(消费者条件、分隔符、提供者规则)/脚本路由

R–registry/服务注册中心–管理服务发布/订阅的配置管理节点

    - 服务提供者--发布服务
    - 服务消费者--调用远程服务
    - 服务注册中心--目录管理器
    - 特性--支持对等集群、提供CRUD接口、安全加固、订阅发布机制、可靠性

V–version/服务多版本–服务的多版本,即服务提供者与服务消费者版本需要对应

    - dubbo--interface+group+version(major.minor.micro)
    - 服务热部署、服务热插拔

3. MSA--micro service architecture--微服务架构--微服务专注于做一件事情
- 应用解耦
- 分而治之
- 敏捷交付
- 基于Docker容器部署微服务

4. 示例代码位于– https://github.com/undergrowthlinear/2016MyBookSummary.git
最简单的RPC框架实现代码在com.undergrowth.distribute.service.framework.RpcTest.main有演示

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值