小编Xu *_*Yao的帖子

如何知道字节数组是哪个protobuf消息?

我想使用protobuf而不是Json在消息队列之间进行通信。

当只有一条原始消息时,我知道如何处理。

假设原始文件为:

//person.proto
syntax = "proto3";

option java_outer_classname = "PersonProto";

message Person {
    int32 id = 2;
    string name = 1;
    string email = 3;
}
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用以下方法处理它:

PersonProto.Person person = PersonProto.Person.newBuilder()
        .setEmail("123@test.com")
        .setId(1)
        .setName("name-test")
        .build();

byte[] bytes = person.toByteArray();

//Transfer from publisher to consumer between message queue.

//I can deserialise it, because i know the proto message is Person.
PersonProto.Person.parseFrom(bytes);
Run Code Online (Sandbox Code Playgroud)

但是,如果有多个原始消息怎么办?

假设还有另一个原始消息称为Address

syntax = "proto3";

option java_outer_classname = "PersonProto";

message Person {
    int32 id = 2;
    string …
Run Code Online (Sandbox Code Playgroud)

message-queue protocol-buffers

3
推荐指数
2
解决办法
4112
查看次数

标签 统计

message-queue ×1

protocol-buffers ×1