自定义路由

如果您有自定义路由的需求,您可以通过实现com.alipay.cloud.sofa.router.SofaRouter接口来添加路由逻辑。

com.alipay.cloud.sofa.router.SofaRouter接口提供了两个方法供实现:

  • List<InstanceInfo> route(SofaRouterContext context, List<InstanceInfo> instanceInfos)

    在该方法中实现路由逻辑时:

    • 请求参数SofaRouterContext携带了此次请求的关键信息,可从中获得请求报文头、Cookie、query string、请求参数等数据,用于对请求进行判别。

    • 请求参数List<InstanceInfo>是所有可选的提供者。InstanceInfo中可获得提供者在注册中心的元数据信息和地址信息。

      此处传入的List<InstanceInfo>已经是经过了之前的路由算法过滤过的列表。

    该方法返回过滤完成后的提供者列表。

  • int getOrder()

    该方法用于定义路由的优先级,返回的数值越小,优先级越高。在内置的路由中,优先级最高的是灰度路由,Order 为 0。

    接口实现后,将其作为 Spring Bean 加载到 Spring 容器上下文中即可生效。