路由规则管理


创建路由规则

为服务创建一个路由规则,以对服务进行流量调度,一个服务只能有一个路由规则。

请求示例:

  1. POST /naming/v1/routings
  2. # 开启北极星服务端针对控制台接口鉴权开关后,需要添加下面的 header
  3. Header X-Polaris-Token: {访问凭据}
  4. [
  5. {
  6. "service":"...",
  7. "namespace":"...",
  8. "inbounds":[
  9. {
  10. "sources": [
  11. {
  12. "service": "...",
  13. "namespace": "...",
  14. "metadata": {
  15. "...": {
  16. "type": "EXACT",
  17. "value": "..."
  18. }
  19. }
  20. }
  21. ],
  22. "destinations": [
  23. {
  24. "metadata": {
  25. "...": {
  26. "type": "EXACT",
  27. "value": "..."
  28. }
  29. }
  30. "weight": ...
  31. }
  32. ]
  33. }
  34. ],
  35. "outbounds":[
  36. {
  37. "sources": [
  38. {
  39. "metadata": {
  40. "...": {
  41. "type": "EXACT",
  42. "value": "..."
  43. }
  44. }
  45. }
  46. ],
  47. "destinations": [
  48. {
  49. "service": "...",
  50. "namespace": "...",
  51. "metadata": {
  52. "...": {
  53. "type": "EXACT",
  54. "value": "..."
  55. }
  56. }
  57. "weight": ...
  58. }
  59. ]
  60. }
  61. ],
  62. "service_token":"...",
  63. }
  64. ]

回复示例:

  1. {
  2. "code":200000,
  3. "info":"...",
  4. "size":1,
  5. "responses":[
  6. {
  7. "code":200000,
  8. "info":"...",
  9. "routing":{
  10. "service":"...",
  11. "namespace":"..."
  12. }
  13. }
  14. ]
  15. }

数据结构:

routing结构参数

参数名类型描述是否必填
servicestring规则所属的服务名
namespacestring规则所属的命名空间
inboundsroute[]入流量规则
outboundsroute[]出流量规则
service_tokenstring鉴权token,当开启鉴权后需要传入

route结构参数

参数名类型描述是否必填
sourcessource[]请求匹配条件
destinationsdestination[]目标实例分组匹配条件

source结构参数

参数名类型描述是否必填
servicestring主调方服务名,填代表全匹配
namespacestring被调方服务名,填代表全匹配
metadatamap<string, matchString>匹配参数,需全匹配所有KV才通过

destination结构参数

参数名类型描述是否必填
servicestring被调方服务名,填代表全匹配
namespacestring被调方命名空间,填代表全匹配
metadatamap<string, matchString>示例标签匹配参数,需全匹配才通过
priorityint32优先级,数值越小,优先级越高,请求会优先选取优先级最高的实例分组进行路由,只有该分组没有可用实例才会选择次高优先级的分组
weightint32分组权重,优先级相同的多个分组,按权重比例进行请求分配

matchString结构参数

参数名类型描述是否必填
typestring匹配类型,枚举值,支持:EXACT(全匹配,默认),REGEX(正则表达式匹配)
valuestring匹配的目标值
value_typestring值类型,枚举值,支持:TEXT(文本,默认),PARAMETER(参数,路由规则值使用动态参数时用到)

查询路由规则

请求示例:

  1. GET /naming/v1/routings?参数名=参数值
  2. # 开启北极星服务端针对控制台接口鉴权开关后,需要添加下面的 header
  3. Header X-Polaris-Token: {访问凭据}
参数名类型描述是否必填
servicestring服务名
namespacestring命名空间
offsetint分页的起始位置,默认为0
limitint每页行数,默认100

应答示例:

  1. {
  2. "code": ...,
  3. "info": "...",
  4. "amount": ...,
  5. "size": ...,
  6. "routings": [
  7. {
  8. "service": "...",
  9. "namespace": "...",
  10. "inbounds": [...],
  11. "outbounds": [...],
  12. "ctime": "...", // 创建时间
  13. "mtime": "..." // 修改时间
  14. }
  15. ]
  16. }

修改路由规则

更新服务下的路由规则的相关信息

请求示例:

  1. PUT /naming/v1/routings
  2. # 开启北极星服务端针对控制台接口鉴权开关后,需要添加下面的 header
  3. Header X-Polaris-Token: {访问凭据}
  4. [
  5. {
  6. "service":"...",
  7. "namespace":"...",
  8. "inbounds":[...],
  9. "outbounds":[...],
  10. "service_token":"...",
  11. }
  12. ]

回复示例:

  1. {
  2. "code":200000,
  3. "info":"...",
  4. "size":1,
  5. "responses":[
  6. {
  7. "code":200000,
  8. "info":"...",
  9. "routing":{
  10. "service":"...",
  11. "namespace":"..."
  12. }
  13. }
  14. ]
  15. }

数据结构:

routing结构参数

参数名类型描述是否必填
servicestring规则所属的服务名
namespacestring规则所属的命名空间
inboundsroute[]入流量规则
outboundsroute[]出流量规则
service_tokenstring鉴权token,当开启鉴权后需要传入

删除路由规则

删除服务下的路由规则

请求示例:

  1. POST /naming/v1/routings/delete
  2. # 开启北极星服务端针对控制台接口鉴权开关后,需要添加下面的 header
  3. Header X-Polaris-Token: {访问凭据}
  4. [
  5. {
  6. "service_token":"...",
  7. "service":"...",
  8. "namespace":"..."
  9. }
  10. ]

回复示例:

  1. {
  2. "code":200000,
  3. "info":"...",
  4. "size":1,
  5. "responses":[
  6. {
  7. "code":200000,
  8. "info":"...",
  9. "routing":{
  10. "service":"...",
  11. "namespace":"..."
  12. }
  13. }
  14. ]
  15. }