如果您使用 Pub/Sub 发布大量 数据的消息,则可以在发布客户端发送发布 请求之前使用 gRPC 压缩数据 ,以节省网络费用。Pub/Sub 的 gRPC 压缩使用 Gzip 算法。
本文档介绍了如何压缩发布到主题的消息。
关于压缩消息
使用 gRPC 客户端压缩功能的压缩比因发布方客户端而异,并且取决于以下因素:
数据量。当有效载荷的大小从几百字节增加到几千字节的数据时,压缩比会提高。发布请求的批处理设置决定了每个发布请求中包含的数据量。我们建议您同时启用批处理设置和 gRPC 压缩,以获得最佳效果。
数据类型。与图片等二进制数据相比,JSON 或 XML 等基于文本的数据更易于压缩。
如果您的发布客户端已开启 Google Cloud,则可以使用
已发送字节数 (instance/network/sent_bytes_count) 指标
来衡量发布吞吐量(以字节为单位)。如果您的发布客户端位于其他应用中,则必须使用特定于客户端的工具进行衡量。
本部分中的代码示例展示了一个示例 Java 客户端库代码段,其中还包含 gRPC 压缩。
准备工作
在配置发布工作流之前,请确保已完成以下任务:
所需的角色
如需获得压缩消息所需的权限,请让您的管理员为您授予主题的Pub/Sub Publisher (roles/pubsub.publisher) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
您需要额外的权限才能 创建或更新主题和订阅。
压缩消息
C++
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 C++ 设置说明进行操作。如需了解详情,请参阅 Pub/Sub C++ API 参考文档。
Java
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Java API 参考文档。
后续步骤
如需了解如何配置高级发布选项,请参阅以下内容: