GCP 数据流的推与拉
Push vs Pull for GCP Dataflow
我想知道应该在 GCP pubsub 中创建哪种类型的订阅,以便处理来自 pubsub 主题的高频数据。
我将以每秒 100 多条消息的速度在数据流中摄取数据。
拉取或推送订阅真的很重要,它将如何影响速度和所有内容。
如果使用 Dataflow 使用 PubSub 订阅,则只有 Pull 订阅可用
- 要么创建一个,然后在数据流管道的参数中提供它
- 或者您仅在数据流管道中指定主题,Dataflow 将自行创建请求订阅。
如果这两种情况,Dataflow 将以流模式处理消息
区别
如果您自己创建订阅,所有消息将被存储和保留(默认最多7天)并在数据流管道启动时被消耗。
如果让数据流创建订阅,数据流管道只会使用订阅创建后到达的消息。如果你不想丢失消息,这不是推荐的解决方案。如果你不在意旧消息,那是个不错的选择。
高频
那么,每秒100条消息绝对不算高频。 1 个 pubsub 主题每秒最多可以接收 1 000 000 条消息。别担心!
推 VS 拉
型号不同
- 对于推送订阅,您必须指定一个使用消息的 HTTP 端点(在 GCP 上或其他地方)。这是一个 webhook 模式。如果平台端点随流量自动扩展(例如 Cloud 运行、Cloud Functions),消息率可能会非常高!! HTTP return 代码代表消息确认。
- 使用拉取订阅,客户端需要打开一个到订阅的连接,然后拉取消息。客户端需要明确确认消息。可以同时连接多个客户端。使用客户端库,消息使用 gRPC 协议进行消费,接收和消费消息的效率更高(就网络带宽而言)
安全观点
对于推送,如果端点需要身份验证,则它是要在 HTTP 端点上进行身份验证的 PubSub
使用pull,需要在PubSub 订阅上进行身份验证的是客户端。
我想知道应该在 GCP pubsub 中创建哪种类型的订阅,以便处理来自 pubsub 主题的高频数据。 我将以每秒 100 多条消息的速度在数据流中摄取数据。 拉取或推送订阅真的很重要,它将如何影响速度和所有内容。
如果使用 Dataflow 使用 PubSub 订阅,则只有 Pull 订阅可用
- 要么创建一个,然后在数据流管道的参数中提供它
- 或者您仅在数据流管道中指定主题,Dataflow 将自行创建请求订阅。
如果这两种情况,Dataflow 将以流模式处理消息
区别
如果您自己创建订阅,所有消息将被存储和保留(默认最多7天)并在数据流管道启动时被消耗。
如果让数据流创建订阅,数据流管道只会使用订阅创建后到达的消息。如果你不想丢失消息,这不是推荐的解决方案。如果你不在意旧消息,那是个不错的选择。
高频
那么,每秒100条消息绝对不算高频。 1 个 pubsub 主题每秒最多可以接收 1 000 000 条消息。别担心!
推 VS 拉
型号不同
- 对于推送订阅,您必须指定一个使用消息的 HTTP 端点(在 GCP 上或其他地方)。这是一个 webhook 模式。如果平台端点随流量自动扩展(例如 Cloud 运行、Cloud Functions),消息率可能会非常高!! HTTP return 代码代表消息确认。
- 使用拉取订阅,客户端需要打开一个到订阅的连接,然后拉取消息。客户端需要明确确认消息。可以同时连接多个客户端。使用客户端库,消息使用 gRPC 协议进行消费,接收和消费消息的效率更高(就网络带宽而言)
安全观点
对于推送,如果端点需要身份验证,则它是要在 HTTP 端点上进行身份验证的 PubSub
使用pull,需要在PubSub 订阅上进行身份验证的是客户端。