《云计算与虚拟化技术丛书 Service Mesh实战》—2.3Linkerd主要功能

举报
华章计算机 发表于 2019/06/05 15:28:31 2019/06/05
【摘要】 本书摘自《云计算与虚拟化技术丛书 Service Mesh实战:基于Linkerd和Kubernetes的微服务实践》一文中的第2章,第2.3节,作者是杨彰显。

2.3 Linkerd主要功能

       如图2-2所示, Linkerd提供如下主要功能。

基于感知时延的负载均衡

       Linkerd工作于第5层,它能实时观测到所有RPC请求延时、队列里未处理请求的数量,因此可基于这些实时性能数据分发请求,相对于传统启发式负载均衡算法,如LRU、TCP活动情况等,这种分发机制性能更优,可尽可能降低时延,提高稳定性。

       提供多种负载均衡算法,如 Power of Two Choices (P2C):Least Loaded、Power of Two Choices:Peak EWMA、Aperture:Least Loaded、Heap:Least Loaded以及Round-Robin。

image.png

图2-2 Linkerd功能

 运行时动态路由

       Linkerd支持基于请求级路由,即在HTTP请求里嵌入特定包头,Linkerd根据包头信息将请求路由到特定的应用实例。

       另外支持动态修改路由规则实现运行时流量迁移、蓝绿部署、金丝雀部署、跨数据中心切换等。

 熔断机制

       快速失败(Fail Fast):基于连接的熔断器,如果Linkerd观测到访问某个应用实例建立连接时发生错误,Linkerd将该实例从维护的连接池移除,新的请求不会再被分发到该实例,与此同时,Linkerd在后台不断尝试与移除的实例建立连接,一旦确认实例已经恢复,Linkerd重新将其加入连接池。

       失败累计(Failure Accrual):基于请求的熔断器,如果Linkerd观测到访问某个应用实例时,指定数目请求连续失败,Linkerd将该实例标注为不可用状态,不再接受新的请求尝试。同快速失败一样,在后台,Linkerd基于设置的退避间隔(Backoff Interval)周期地发送请求以验证实例是否恢复,一旦恢复,便可接受新的请求。

 插入式服务发现

       支持各种服务发现机制,如基于文件(File-based)、DNS、KV键值存储系统Zookeeper和Consul、Kubernetes及Marathon等,可以很方便地接入现有或者新的服务发现工具。

超时重试

       支持基于HTTP响应分类器对某些失败的请求进行自动重试。

       支持设置基于请求层的超时,一旦超时Linkerd客户端取消请求。

       重试和超时是为了避免服务器端陷入超额负载状态。

透明TLS加密通信

       Linkerd提供的透明TLS功能使得无需修改代码就可实现服务端到端的安全通信,以统一的方式管理整个基础设施层TLS。

 指标及分布式追踪

       作为透明代理使得Linkerd第一时间知道从单个到整个集群应用实例的运行时指标,通过InfluxDB、Prometheus等收集这些运行时指标,提高整个系统服务状态可见性。

       除此之外,可跟各种分布式追踪系统集成,如Zipkin,动态追踪系统运行状态,无需对应用代码做任何修改。

支持多种协议多语言

       支持HTTP、HTTP/2、gRPC、Thrift等协议。

       Linkerd是语言无关的,任何环境,任何语言都支持。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。