服务配置文件为Linkerd提供有关服务的附加信息。以下是可以使用服务配置文件完成的所有操作的参考。系列中文手册(https://linkerd.hacker-linner.com)Spec(规范)服务配置文件规范必须包含以下顶级字段:字段值routes路由对象列表retryBudget定义最大重试率的重试预算对象本服务的路由(routing)路由对象必须包含以下字段:fieldvaluename这条路由的名称,因为它会出现在路由标签中condition一个请求匹配对象,用于定义请求是否匹配这条路由responseClasses(optional)responseclass对象列表isRetryable表示对路由的请求总是可以安全重试的,会导致proxy尽可能重试路由上失败的请求timeout等待响应的最长时间(包括重试)发送请求后完成)请求匹配对象必须恰好包含以下字段之一:字段值pathRegex匹配请求的正则表达式访问路径GET、POST、PUT、DELETE、OPTION、HEAD、TRACE方法之一all必须全部匹配的请求匹配对象列表任何请求匹配对象的列表,其中至少有一个必须匹配not必须不匹配的请求匹配对象matchRequestMatch最佳使用示例简单的条件就是路径正则表达式:pathRegex:'/authors/\d+'这是检查请求方法的条件:method:POST如果设置了多个条件字段,则必须满足所有条件这等效于使用all条件:all:-pathRegex:'/authors/\d+'-method:POST您可以使用all、any和not组合条件:any:-all:-method:POST-pathRegex:'/authors/\d+'-all:-not:method:DELETE-pathRegex:/info.txtResponseClass(响应类)响应类对象必须包含以下字段:字段值condition一个响应匹配对象,它定义是否一个response匹配这个响应类isFailure一个布尔值,定义这些响应是否应该被归类为失败响应匹配(responsematch)响应匹配对象必须恰好包含以下字段之一:字段值status用于匹配响应状态的状态范围对象codeallmustallmatchresponsematchobjectslistanylistofresponsematchobjects,atleastoneofwhichmustmatchtheresponsematchobjectsthatmustnotmatch响应匹配条件可以以类似于上面显示的请求匹配使用示例的方式组合状态范围e状态范围对象必须必须至少包含以下字段之一仅指定min或max之一将仅匹配一个状态代码。字段值minstatuscode必须大于或等于该值maxstatuscode必须小于或等于该值服务于原始请求量。字段值retryRatio重试请求占原始请求的最大比例minRetriesPerSecond除了retryRatio允许的重试次数外,每秒允许的重试次数ttl表示在计算retryRatio时要考虑请求的时间实际设置服务配置文件https://linkerd.hacker-linner.com/2.11/tasks/setting-up-service-profiles/完整的演示演练https://linkerd.hacker-linner.com/2.11/tasks/books/#service-profiles/
