作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在谷歌云的 pubsub 中,我可以看到在创建新主题时,我必须创建一条新消息。我可以在那里存储一个 protobuf 文件,而不必在键值对中编写整个消息结构吗?对于应该编写的 protobuf 代码,我的意思是 this .如果 protobuf 不打算放在 gcloud pubsub 上,我如何将它与 grpc 客户端一起使用?
最佳答案
如果您想通过 Publish
API 发送 ProtoBuf 消息,您应该将其序列化为 ByteString
,然后将其设置为消息的 数据
字段。例如,如果您使用 Java client library你有一个 Publisher
和某些 ProtoBuf 类型的 obj
,那么您可以执行以下操作:
PubsubMessage message = PubsubMessage.newBuilder()
.setData(obj.toByteString())
.build();
ApiFuture<String> response = publisher.publish(message);
...
在订阅端,您将解码 MessageReceiver 中的消息:
public void receiveMessage(PubsubMessage message, AckReplyConsumer consumer) {
ProtoBufMessage obj;
try {
obj = ProtoBufMessage.parseFrom(message.getData());
} catch (Exception e) {
// Handle improperly encoded message
}
...
}
关于publish-subscribe - 如何在 gcloud pubsub 中为主题添加 protobuf 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47346003/
我是一名优秀的程序员,十分优秀!