全部产品

服务路由

当服务消费者面临多个服务提供者时,需要通过路由规则来确定具体的服务提供者。服务路由功能允许用户定义多条路由规则,提供了灵活的路由功能,可以帮助用户解决多个场景下的难题。

  • 线下测试联调问题。

  • 蓝绿发布问题。

  • 灰度引流问题。

配置的路由路由规则实际在服务消费方(即客户端)生效,通过界面上的配置来过滤服务提供方,目前主要有 RPC-Client(经典微服务生效)和 MOSN(服务网格生效)两种执行实体。

路由模型服务端在部署时,可以在机器上加固定格式的标签,比如 LABEL=A。

服务路由

路由规则生效流程图路由规则生效图

前置条件

请确保 SOFABoot 版本在 3.3.3 及以上。有关 SOFABoot 的版本信息,详见 SOFABoot 版本说明

路由操作

SOFAStack 平台 > 中间件 > 微服务平台 > 微服务 > 页面,单击 服务治理 标签,进入 服务治理 页面。选择 服务路由 标签,可以对路由规则进行查询、添加和编辑。

查询路由规则

可以根据下述内容,对路由规则进行模糊查询:

  • 应用名

  • 路由服务名

  • 路由规则名

添加路由规则

单击 添加路由规则 按钮,可配置相应的路由规则。示例如下:路由规则1.png路由规则2.png

  • 规则组名称:路由规则的名称。

  • 应用:可选择或填写服务端的应用名称。

  • 服务:可通过下述两种方式选择或填写所选应用下包含的服务。

    • 从下拉框选择。

    • 通过右侧的 切换输入模式,手动输入服务名称。该方式为兜底机制,适用于无法从下拉框中选择路由服务的场景。

  • 规则属性:可点击页面右侧(加号.png),来添加多条路由规则。路由规则主要内容包括:

    • 规则名称:对路由规则进行标记。

    • 优先级:数字越大,优先级越高。

    • 规则开关:是否开启该条路由规则。添加规则后,在路由规则列表页,针对该条路由规则,会有一个总开关,只有总开关生效后,该条路由规则才会生效。

    • 分流开关:用于配置了多个流量目的地的场景。当匹配的流量目的地没有服务端机器时,通过分流开关,可以回退到其它流量目的地去查询服务端机器。

    • 降级开关:当在优先级最高的规则上没有找到服务端机器的话,就往低优先级的规则上面去找服务端机器。

    • 流量精确匹配:支持多条匹配条件的 操作。多个规则按照顺序执行,直到被某一个规则被拦截或全部通过。规则主要包括下述内容:

      • 字段:包括系统字段和请求头。

      • 字段名:包括流量类型、调用方应用名、调用方 IP、服务方应用名。

      • 选择逻辑:包括等于、不等于、属于、不属于、正则。

      • 字段值

    • 流量目的地:匹配成功的数量,按权重转发到满足过滤条件的服务实例分组,包括下述内容。

      • 权重

      • 服务实例分组条件:可添加多个条件,各条件之间是 的关系,条件包括下述内容。

        • 字段名:可从下拉框选择,或者自定义输入。

        • 逻辑:包括等于、不等于、属于、不属于、正则。

        • 字段值:例如调用方应用名、调用方 IP、服务方应用名、服务方服务名、服务方方法名。

编辑路由规则

在服务路由页,点击页面下方路由规则列表左侧的(加号.png),可以进行下述操作:

  • 开启、关闭路由规则生效的状态。

  • 编辑路由规则:编辑正在生效的规则会实时生效。

  • 删除路由规则:删除正在生效的规则会实时生效。

管理路由规则.png