我就问一下,不行就算了~(还有能加上jacksonserialization吗?
https://github.com/apache/incubator-dubbo/blob/6ce7b11f982c5f7beb2ac5897fb33d48da357ada/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/codec/ExchangeCodec.java#L211
protected void encodeRequest(Channel channel, ChannelBuffer buffer, Request req) throws IOException {
Serialization serialization = getSerialization(channel);
dubbo-2.6.3,channel.url对应的service和req里对应的service不是同一个,导致对每个Service配置不同的serialization结果还是同一个serialization方式(看channel拿到的是哪个),@Reference里面指定也不行。
Q1: dubbo-2.6.3
1、提供者和消费者不在同一个jvm里,或者强制指定scope="remote"
2、提供者里为2个service指定不同的serialization
3、消费者里断点到下面这个方法里: serialization = getSerialization(channel);
https://github.com/apache/incubator-dubbo/blob/6ce7b11f982c5f7beb2ac5897fb33d48da357ada/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/codec/ExchangeCodec.java#L211
4、测试Reference1,断点地方看下channel.url对应的service和req里对应的service是否是同一个
5、测试Reference2,断点地方看下channel.url对应的service和req里对应的service是否是同一个
reference1,reference2对应两个不同的service
想表达的就是上面的:channel.url对应的service和req里对应的service不是同一个
Q2: jackson serialization?
原提问者GitHub用户gMan1990
q1: 我的理解,拿到的应该不是同一个service实例,在dubbo最新版本,比如2.6.5& 2.7.0+ 已经修复过一次。低版本拿到的是同一个实例,当时用@Reference注解内部使用了cache,导致拿到同一个实例。
q2: jackson serialization? 这个问题是啥?
dubbo 客户端请求会把具体序列化协议flag传给provider,如果遇到具体的问题,麻烦写个demo复现,我们看下。
原回答者GitHub用户zonghaishang
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。