如果您有自定义路由的需求,您可以通过实现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 容器上下文中即可生效。
该文章对您有帮助吗?