手机游戏巴士

CloudPub/Sub现提供重播功能

发表于:2024-05-03 作者:游戏编辑
编辑最后更新 2024年05月03日,Google现在为其GCP数据串流截取服务CloudPub/Sub增加重播(Replay)功能,快速简单地批处理Backlog中消息,即便数据订阅者收到一连串有问题的串流数据,也...

Google现在为其GCP数据串流截取服务Cloud Pub/Sub增加重播(Replay)功能,快速简单地批处理Backlog中消息,即便数据订阅者收到一连串有问题的串流数据,也能利用重播功能,丢弃某个事件的有问题消息,或是恢复到过去某个时间点的订阅状态,安全地修复程序错误。

Cloud Pub/Sub是Google可扩展的数据串流服务,提供将数据从发布者串流至订阅者客户端的消息服务,而现在添加了重播功能,用户可以重播旧事件或是消息,为数据订阅者提供一个额外处理消息的机会。

正常的使用状态,Cloud Pub/Sub发布者客户端持续发布事件到Pub/Sub主题中作为消息,而数据订阅者则会平行地处理和消耗这些事件。在不少时候,订阅者端可能发生故障而无法确认正在处理的消息,抑或是发布者端产生了订阅者不支持的数据,而这代表Backlog中可能存在部分订阅者永远不会确认的消息。这时候新的重播功能就能发生作用,简单的清除Backlog未被确认的消息,或是回退Backlog状态,帮助修复发布者或是订阅者程序代码的错误。

Backlog消息状态发生问题有不少可能性,问题或许发生在数据发布者端,产生的消息不符合订阅者预期的格式,即便开发者对于数据发布者作出修改,但是之前未确认的消息仍然存在,订阅者也无法确认这些消息,此时Cloud Pub/Sub增用户可以使用Seek API批次确认某个特定时间点之前发布的所有消息。

而且在过去,一旦被确认过的消息,Pub/Sub便会丢弃该消息,甚至于用户完全无法复原,Cloud Pub/Sub强大的重播功能,让即便确认过的消息也能往前回退。这个功能可以用于修复数据订阅者发生的错误,当订阅者确认了部分消息后仍没有完成预期的工作,用户可以使用重播功能,一样使用Seek API以倒带取消确认之前的消息,并修复订阅者后接续之前的工作阶段。 Google表示,这个功能必须要在订阅功能上,事先激活retain_acked_messages属性。

另外,重播还提供快照功能,用户可以创建订阅者Backlog的当前切确状态,这个功能同样可以应用在修复订阅者错误上,当用户想要迭代订阅者程序之前,可以先使用CreateSnapshot API创建订阅快照,一旦新的订阅者程序发生问题,错误确认了消息,用户只要简单的使用之前创建的订阅快照,就能快速地使用Seek API,将订阅Backlog恢复到创建快照时的状态。

用户可以重复这些重播功能,直到修复发布者或是订阅者程序的错误,并正确的处理Backlog中的消息。 Cloud Pub/Sub重播功能提供开发者灵活的手段,在不需要冒着丢失消息的风险,安全地修复错误。




0