maven 引入Protobuf core,
只能直接用来序列化和反序列化吗, 而不能直接实现RPC ????
比如像Avro那样直接使用对应的实现类,Avro实现TCP的就使用 SocketServer和SocketTransceiver
Protobuf怎么实现???
跪谢
Protobuf只是将所有字段按序序列化成出来,序列化结果里没有消息类型和整个消息长度的标识。
做RPC的协议一般消息都是由消息类型、消息长度和消息体组成的,这样便于反序列出(识别)不同类型的消息和处理。
比如通过消息头的消息类型就可能很快找到对应的反序列化类,再读取指定长度的消息体就可以反序列化结果了。
比如需要检查每个消息体的大小防止恶意的消息交互,毕竟有坏人可能给你发一个超出你Xmx的消息,解析一下就OOM了。。
如果你的场景里,客户端-服务端交互的消息类型只有一种,那么可以直接使用Protobuf做序列化和反序列化工具。
需要RPC的场景,除了grpc外,还可以考虑protostuff,详情见 https://github.com/protostuff/protostuff。
protobuf是做的打包解包的工作,要做rpc,接口定义,服务寻址,通信协议等等工作都是需要的,对象的序列化(打包解包)只是其中很小一部分,常见的rpc框架有hessian,阿里也有开源框架dubbo可以参考
在钉钉群中已经有一位大哥帮我回答了 ,总结一下
Google的Protobuf只有实现了序列化的功能, 需要实现RPC只能去用grpc或者别的rpc框架
恩...就是这样
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。