dynastqin

Results 3 comments of dynastqin

XQL开源无望了~~~

通过自定RouterFactory拓展点可以解决此问题,如下是本人的解决方案: 1) 定义如下类MyConditionRouterFactory ```java public class MyConditionRouterFactory implements RouterFactory { public static final String NAME = "myCondition"; public Router getRouter(URL url) { return new MyConditionRouter(url); } } ``` 2) 增加类MyConditionRouter,基于源码com.alibaba.dubbo.rpc.cluster.router.condition.ConditionRouter,并修改如下关键方法...

方案二:基于script的路由,思路与myCondition路由大同小异,这是在不改任何源代码的方式来实现(dubbo的script路由很灵活),定义如下: ```java RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension(); Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://xxx:2181")); String script = "(function route(invokers,invocation){var routeApp='myConsumer';var routeHosts='127.0.0.1,127.0.0.2'.split(',');var result=new java.util.ArrayList();for(var i=0;i=0){result.add(invokers.get(i))}}return result}(invokers,invocation));"; URL url = URL.valueOf("script://0.0.0.0/xxx.DemoService?category=routers&force=true&enabled=true&dynamic=false&type=javascript&rule=" + URL.encode(script)); registry.register(url); ``` ps...