linkerd实战(3)HTTP1.1 Identifiers详解

概述上一篇我们一步一步搭建了linkerd示例,用到了默认的Identifier将服务调用方的请求转换成service name。现在我们来具体了解一下linkerd中Identifier的使用。在linkerd中所有的基于http/1.1协议的Identifier都有一个kind属性配置,不同的kind配置使用不同转换策略对请求进行转换生成service name。如果不配置默认为kind:io...
摘要由CSDN通过智能技术生成
概述
上一篇我们一步一步搭建了linkerd示例,用到了默认的Identifier将服务调用方的请求转换成service name。现在我们来具体了解一下linkerd中Identifier的使用。
在linkerd中所有的基于http/1.1协议的Identifier都有一个kind属性配置,不同的kind配置使用不同转换策略对请求进行转换生成service name。如果不配置默认为kind:io.l5d.header.token

Header Token Identifier
将使用http header的项作为servive name的标识。如果不设置header名称,默认会使用Host。
kind:io.l5d.header.token
额外属性配置:
配置名
默认值
描述
header
Host
选用哪个Http Header作为service name标识
转换目标service name模板:
/ dstPrefix / [headerValue]

模板占位符
默认值
描述
dstPrefix
/svc
在routers中配置的dstPrefix前缀值
headerValue
N/A
配置的header值
示例:
修改示例,我们采用test-header作为自定义的header,配置调整如下:
routers:
- protocol: http
identifier:
kind: io.l5d.header.token
header: test-header
dtab: |
/svc => /#/io.l5d.fs;
servers:
- port: 4140
ip: 0.0.0.0

运行:
$ curl -H "test-header:test" http://127.0.0.1:4140

Method and Host Identifier
将组合使用http header的项Host,method和URL(可选)作为servive name的标识。
kind: io.l5d.methodAndHost
额外属性配置:
配置名
默认值
描述
httpUriInDst
false
是否把请求uri作为service name标识的一部分,
建议使用path identifier来更精确控制uri

Http1.1中转换目标service name模板:
/ dstPrefix / 1.1 / method / host [/ uri* ]

Http1.0中转换目标service name模板(没有host信息):
/ dstPrefix / 1.1 / method [/ uri* ]

模板占位符
默认值
描述
dstPrefix
/svc
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值