Cloud Pub/Sub现提供重播功能能回退Backlog到特定时间点

人工智能2021-02-24 20:07:15
最佳答案

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重播功能提供开发者灵活的手段,在不需要冒着丢失讯息的风险,安全地修复错误。

免责声明:本文由用户上传,如有侵权请联系删除!