草庐IT

Protobuf

全部标签

java - 依赖名称在 google protobuf 2.5.0 中不一致

我有一个在Windows和Linux环境中运行的Web应用程序。在linux和仅linux中,我遇到以下异常:Causedby:java.lang.IllegalArgumentException:Invalidembeddeddescriptorfor"moop_shared.proto".atcom.google.protobuf.Descriptors$FileDescriptor.internalBuildGeneratedFileFrom(Descriptors.java:301)...Causedby:com.google.protobuf.Descriptors$Desc

java - Protobuf "oneof"功能不工作

我有一个示例protobuf消息:messagetestMessage{oneofoneOfTest{stringtest2=2;int32test3=3;}}但是编译失败,说:[ERROR]protocfailederror:Expected"required","optional",or"repeated".test.proto:Missingfieldnumber.根据行号,它正在寻找“oneof”之前的必需/可选/重复的keyworkd,并提示“oneOfTest”之后缺少字段号。这不是使用oneof的正确方法吗?我正在为Protobuf使用java编译器。

java - 我应该如何序列化域模型快照以进行事件溯源

我们正在使用LMAXDisruptor构建应用程序.使用EventSourcing时,您通常希望保留域模型的定期快照(有些人将其称为MemoryImage模式)。我需要一个比我们目前使用的更好的解决方案来在拍摄快照时序列化我们的领域模型。我希望能够以可读的格式“pretty-print”此快照以进行调试,并且我希望简化快照架构迁移。目前,我们正在使用Googles'ProtocolBuffers将我们的域模型序列化为一个文件。我们选择了这个解决方案,因为ProtocolBuffer比XML/JSON更紧凑,并且使用紧凑的二进制格式似乎是序列化大型Java域模型的好主意。问题是,Prot

java - 使用 Protobuf 类与在 Java 中使用映射框架/层

我无法在网上找到任何关于在项目中使用gRPC和protobuf的“最佳实践”。我正在实现一个事件源服务器端应用程序。核心在没有外部依赖性的情况下定义域聚合、事件和服务。gRPC服务器调用核心服务传递请求对象,最终转化为正在发布的事件。事件使用protobuf序列化并在线上发布。我们目前处于两难境地,我们的事件是否应该直接由protobuf生成类,或者我们是否应该将核心和事件分开并实现一个映射器/序列化器层以在protobuf核心之间转换事件如果我们没有考虑其他方法,请指导我们:)感谢您的帮助。 最佳答案 域模型对象和数据传输对象(P

java - protobuf 消息中的自引用字段

这样的消息可以吗?messageA{requiredint64some_number=1;//....somemorefieldsoptionalAsub_a=123;}原因是我当前的协议(protocol)直接存储A的集合,将A包装在另一条消息中将导致存储数据的大量转换。2.2.0协议(protocol)编译正常。这会对序列化/反序列化造成任何问题吗,protobuf-net是否支持它。 最佳答案 这是一个完美的定义,应该在任何实现中都有效(包括protobuf-net);你看到什么问题了吗?然而!您可能需要考虑序列化的计算影响-

13. Springboot集成Protobuf

目录1、前言2、Protobuf简介2.1、核心思想2.2、Protobuf是如何工作的?2.3、如何使用Protoc生成代码?3、Springboot集成3.1、引入依赖3.2、定义Proto文件3.3、Protobuf生成Java代码3.4、配置Protobuf的序列化和反序列化3.5、定义controller接口3.6、访问4、小结1、前言在以往的项目中进行网络通信和数据交换的应用场景中,最经常使用的技术便是json或xml。随着JSON的灵活优势,越来越多的企业选择JSON作为数据交换的格式,目前JSON已经成为了业界的主流。JSON已经足够好用,且能满足相当大部分的场景。但是今天在介

Protobuf-net:C#高效序列化工具,助力接口传输与前端解析

 概述:Protobuf-net是C#中高效的二进制序列化工具,以紧凑、跨语言支持和卓越性能著称。通过定义消息类型、序列化和反序列化实现数据传输,并可适用于Web接口。前端可使用protobuf.js库解析Protobuf格式数据。Protobuf-net在C#中的编码结构及使用方法优点Protobuf-net(ProtocolBuffers)是一种高效的二进制序列化工具,具有以下优点:高效紧凑: 生成的二进制数据体积小,传输效率高。跨语言支持: 适用于多语言环境,实现了多语言间数据的无缝交互。性能优越: 相比其他序列化方式,序列化和反序列化速度更快。使用方法1.定义消息类型使用 ProtoC

java - Protobuf 错误 :Protocol message tag had invalid wire type

我在尝试用java读取消息时遇到以下错误Exceptioninthread"main"com.google.protobuf.InvalidProtocolBufferException:Protocolmessagetaghadinvalidwiretype.atcom.google.protobuf.InvalidProtocolBufferException.invalidWireType(InvalidProtocolBufferException.java:78)atcom.google.protobuf.UnknownFieldSet$Builder.mergeFieldF

java - Protobuf java 代码有构建错误

如果在将protobufs与java结合使用时出现此类构建错误,请查看下文。ThemethodgetOptions()fromthetypeDescriptors.DescriptorreferstothemissingtypeMessageOptionsTheimportcom.google.protobuf.DescriptorProtoscannotberesolvedFileDescriptorProtocannotberesolvedtoatype 最佳答案 好吧,所谓Javatutorialforprotobufs实际上

浏览器http提交protobuf二进制数据正常,微信小程序失败解决方案

    最近开发微信小游戏,客户端和服务器端使用http短连接方式post数据,数据的格式使用protobuf,这样通过网络传输的数据是二进制,对于抓包的外挂使用者来说也不容易篡改数据内容。    之前测试一直使用的是PC浏览器来测试协议,通过浏览器看到不管是格式还是内容都没有问题。 等到最后收尾的时候,开始导入微信开发者工具里,进行测试,结果出问题了,二进制数据本应该是上面截图红色圈出来的formdata内容,但是微信开发者工具里查看到的是uint8array结构,所以服务器端收到请求后进行反序列化成对象的时候报错,返回失败。 不过在PC浏览器里却不会发生此问题,所以初步怀疑是PC浏览器在发