我想使用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)