Open gavenwangcn opened 4 years ago
使用motan2协议时,可以通过CommonHandler来实现与泛化调用类似的能力。可以参考这里
motan1其实也能支持,需要做点改造。实现的关键在于DefaultRequest,DefaultRequest包含了interfaceName和methodName,这就是请求真正的接口和方法,我们只需能控制DefaultRequest里面的这2个属性即可。首先构造一个全新的RefererConfig,使用这个全新的RefererConfig生成自定义的泛化ref,这个ref可以将真实的接口名和方法名作为请求参数传入泛化方法,然后构造一个泛化Filter,这个filter用来从泛化方法中解析真实的接口名和方法名并更新DefaultRequest,这样就能完成泛化调用了。这涉及Invoker、GenericFactory、GenericRefererConfig、GenericFilter、GenericService这5个类 Invoker:调用入口,将真实请求的接口名、方法名、参数描述、参数作为调用参数一并传入 GenericFactory:生成GenericService的ref GenericRefererConfig:继承RefererConfig,覆盖init方法,添加自定义的GenericFilter GenericFilter:修改DefaultRequest GenericService:泛化调用接口,是所有泛化调用的入口
motan有支持泛化的规划吗?什么时候能支持,这个对集成中间件很重要啊