zoukankan      html  css  js  c++  java
  • 分布式服务框架设计

    转自:http://thinkinjava.cn/2018/04/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9C%8D%E5%8A%A1%E6%A1%86%E6%9E%B6%E8%AE%BE%E8%AE%A1/

    1. 服务框架的设计

    尽管不同的分布式服务框架实现细节存在差异,但是核心功能差异不大,下面的架构图描绘了一个分布式服务框架的整体逻辑架构。

    image.png

    总共分为 3 层:

    1. 服务层,Service,其中主要部分就是动态代理,主要用于将服务提供者的接口封装成远程服务调用。上层的服务接口用于 Spring 之类的业务框架使用,也是 Spring 的 bean.

    2. 过滤器层,服务调用职责链,提供多种调用切面供框架自身和使用者扩展,例如负载均衡,性能统计,服务调用完成通知,失败重试等。

    3. RPC 层,这里就是 RPC 框架的核心部分,包括通信框架,序列化框架,还有用于屏蔽底层通信框架和序列化框架的抽象接口。

    分布式服务框架通常会包含另外两个重要功能:服务治理中心 和 服务注册中心

    1. 服务注册中心:负责服务的发布和通知,通常支持对等集群部署,某个节点宕机不会影响整个集群不可用。即使全部宕机,只影响新的节点注册和发布,不影响现有的,因为客户端需要缓存服务路由信息。

    2. 服务治理中心: 服务治理中心通常包括服务治理接口服务治理 Portal,架构师,测试人员和系统运维人员通过服务治理 Portal 对服务的运行状态,历史数据,健康度和调用关系等进行可视化的分析和维护,目标是要持续优化服务,防止服务架构腐化,保证服务高质量运行。

    2. 服务框架的功能

    虽然每个服务框架不尽相同,但是还有有一些核心功能是相同的,比如以下功能:

    1. 服务订阅发布:比如,配置化发布和引用服务,服务自动发现,服务在线注册和取消注册。
    2. 服务路由:比如,默认提供随机路由,轮询,基于权重的路由,粘滞连接,路由定制功能。
    3. 集群容错:比如,Failover(失败自动切换),Failback(失败自动恢复),Failfast(快速失败)。
    4. 服务调用:需要支持:同步调用,异步调用,并行调用。
    5. 多协议:包括私有协议,公有协议。
    6. 序列化方式:需要支持二进制和文本类序列化方式。
    7. 统一配置:支持本地静态配置,支持基于配置中心的动态配置。

    以上功能可以按照业务定制,不需要 100% 支持。

    3. 服务框架的性能指标

    分布式服务框架的性能肯定比不上本地调用,原因是:网络通信,序列化,反射调用,动态代理这些都会消耗性能。所以需要有性能指标。

    1. 高性能:在同等资源占用情况下,单服务提供者的 TPS 要尽量高。
    2. 低延时:在同等资源占用情况下,服务调用延时要尽量低。
    3. 性能线性增长:如果增加了服务提供者,整体性能要能够线性增长。
    4. 可靠性:服务注册中心的可靠性,网络链路的可靠性。

    4. 服务治理需要哪些功能?

    1. 服务运行态监控,例如通过路由导流,限流,服务降级,动态控制超时时间。
    2. 服务监控,性能统计,报表,报警。
    3. 服务生命周期管理
    4. 故障快速定位
    5. 服务安全

    总结

    以上就是在设计分布式服务框架需要注意的地方,例如整体架构的设计,框架需要哪些功能,框架的需要保证哪些性能。同时,一个框架只是可以使用时不够的,还需要服务治理,保证服务不被腐化,同时保证服务的健康。

    引用

    《分布式服务框架——原理和实践》——李林峰

  • 相关阅读:
    PAT (Advanced Level) Practice 1054 The Dominant Color (20 分)
    PAT (Advanced Level) Practice 1005 Spell It Right (20 分) (switch)
    PAT (Advanced Level) Practice 1006 Sign In and Sign Out (25 分) (排序)
    hdu 5114 Collision
    hdu4365 Palindrome graph
    单链表查找最大值、两个递增的链表合并并且去重
    蓝桥杯-最短路 (SPFA算法学习)
    蓝桥杯-最大最小公倍数
    Codeforces-470 div2 C题
    蓝桥杯-地宫取宝
  • 原文地址:https://www.cnblogs.com/hahajava/p/9815116.html
Copyright © 2011-2022 走看看