kne*_*rth 2 publish-subscribe google-cloud-pubsub
在 google cloud 的 pubsub 中,我可以看到在创建新主题时,我必须创建一条新消息。我可以在那里存储一个 protobuf 文件,而不必在键值对中编写整个消息结构吗?对于将要编写的 protobuf 代码,我的意思是this。如果 protobuf 不打算放在 gcloud pubsub 上,我如何将它与 grpc 客户端一起使用?
如果您想通过PublishAPI发送 ProtoBuf 消息,您应该通过将其序列化为 aByteString然后将其设置为消息的data字段来实现。例如,如果您正在使用Java 客户端库,并且您有一些 ProtoBuf 类型的Publisherand obj,那么您可以执行以下操作:
PubsubMessage message = PubsubMessage.newBuilder()
.setData(obj.toByteString())
.build();
ApiFuture<String> response = publisher.publish(message);
...
Run Code Online (Sandbox Code Playgroud)
在订阅端,您将解码MessageReceiver 中的消息:
public void receiveMessage(PubsubMessage message, AckReplyConsumer consumer) {
ProtoBufMessage obj;
try {
obj = ProtoBufMessage.parseFrom(message.getData());
} catch (Exception e) {
// Handle improperly encoded message
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2623 次 |
| 最近记录: |