Skip to content
03 ESB Studio使用指南/3.6 高级开发参考/3.6.8 动态路由策略加载实现
  1. 定义一个存储路由策略信息映射关系的对象继承IPolicyData。

    public class RoutePolicyData implements IPolicyData {}

    例如:定义一个map存储<service_url(ESB对外提供访问地址),DETECT_WSDL_URL(服务提供者实际地址)>

    这里也可以将DETECT_WSDL_URL 解析封装成一个ProviderURLBean,方便在中介流中给动态路由对象(HttpDynamicEndpointRef)赋值。

  2. 定义一个路由策略运行时处理实现类继承IPolicyRuntimeHandler。

    public class RoutePolicyRuntimeHandler implements IPolicyRuntimeHandler {}

    getOperationPolicy(T)方法主要实现根据传入参数获取返回结果。

    例如在实现动态路由时,服务请求进入ESB中后,可以将service_url传入,返回DETECT_WSDL_URL。

  3. 修改ESB启动加载策略数据实现类DefaultPolicyDataInit。

  4. 修改常量接口IPolicyConstants,增加路由策略常量ROUTE_POLICY_TYPE。

     // 路由策略
     public static String ROUTE_POLICY_TYPE = "route";
  5. 修改PolicyManageFactory。

  6. 修改DefaultPolicyDataHandler。

    获取数据接口

  7. 通知接口

  8. 修改RouteUtil,从内存对象中获取路由策略信息。

  9. 页面新增、修改、删除接口服务时调用publishService服务通知server更新,传入常量“route”。