Ray
Ray
我不知道这个`BeanUtil.copyProperties`你是用的哪个实现,不清楚它的源码,但是我猜测可能它在做属性copy时针对null的属性也做了copy,并且只是按setter方法的方法名获取第一个Method,然后反射执行的。serviceConfig有两个setMethods方法,反射获取方法时多个同名方法是不保证返回顺序的,当使用了参数类型是MethodConfig的setMethods就会产生异常。 你可以调试看看具体是不是这样
motan提供了[性能测试](https://github.com/weibocom/motan/wiki/zh_userguide#性能测试)结果供参考,也可以根据业务场景对benchmark模块稍作修改进行测试。
目前没有直接的适配。 如果是数据结构比较简单的service,可以考虑通过[restful协议](https://github.com/weibocom/motan/wiki/zh_quickstart#使用restful协议)直接导出http服务
可以评估一下使用mock协议或mockfilter是否能满足你自动化的需求,可以参考https://github.com/weibocom/motan/issues/279
为兼容多语言调用,client端会在后续版本增加泛化调用。 实现统一网关我理解是一种代理模式,可以考虑实现一个proxy的protocol扩展,主要目的是实现转发的com.weibo.api.motan.transport.MessageHandler。 如果使用motan2协议的话,也可以考虑使用motan-go版本的agent来实现。
@wingyiu 目前motan2协议能够支持泛化调用,使用方法可以参考demo模块的Motan2RpcClient中的motan2XmlCommonClientDemo这个方法
@qiaobinwang 你好,哪里设计的不合理或者有什么好的建议也非常欢迎反馈一下,我们看看有没有可能调整完善一下,多谢了
@qiaobinwang 好的,谢谢。泛化调用在motan2协议中已经支持了,不过使用姿势还不算优雅,后续会提供更易用的封装方式,方便跨语言交互时使用。 端口占用多的问题可以试试在service或者basicservice标签中设置`shareChannel=true`,只要协议、序列化方式等protocol标签的配置一致就可以的。
@wingyiu 把demo中的`client.call(...`改成`client.asyncCall(...`就可以了,此时返回值类型是ResponseFuture
netty4使用的是共享对象池,目的是提高并发,减少建立的链接数。 motan的重试机制不是针对同一server进行重试,而是会选择另外的server重试,所以单机网络问题基本不会影响整体服务