当我站起来一个新的Azure功能,通过一个新的消费者群体来监听我们的事件中心时,它会获得所有已发送到事件中心的消息,即使是在几个月之前 . 我认为将集线器上的邮件保留设置为一天会限制,但显然不是 . 无论如何,我真的只希望新的Azure功能从初始部署或测试点开始接收事件,但是我不知道如何指定初始启动检查点,因为这些东西在AF存储中神奇地完成了 .
如果我手动执行集线器逻辑,我可以指定此检查点并从任意时间开始,例如当前时间 . 有没有办法使用Azure功能复制它?
好消息是,您可以更改检查点 . 那里没有太大的魔力:检查点存储在blob存储 - > azure-webjobs-eventhubs 容器中的blob中,其名称为 yournamespace.servicebus.windows.net/yourhub/$Default/X ,其中 $Default 是使用者组名称, X 是分区编号 .
azure-webjobs-eventhubs
yournamespace.servicebus.windows.net/yourhub/$Default/X
$Default
X
这是一个这样的blob的例子:
{"PartitionId":"0","Owner":null,"Token":null,"Epoch":567,"Offset":"14992", "SequenceNumber":156}
坏消息是你需要知道你想要开始的那一刻的偏移,你可能不知道它 . 然后,您需要继续手动或使用自定义代码修改blob . 你应该在功能应用程序启动之前这样做 .
由您决定是否可以/想要这样做 . AFAIK,没有简单和官方的方法来实现这一目标 .
1 回答
好消息是,您可以更改检查点 . 那里没有太大的魔力:检查点存储在blob存储 - >
azure-webjobs-eventhubs
容器中的blob中,其名称为yournamespace.servicebus.windows.net/yourhub/$Default/X
,其中$Default
是使用者组名称,X
是分区编号 .这是一个这样的blob的例子:
坏消息是你需要知道你想要开始的那一刻的偏移,你可能不知道它 . 然后,您需要继续手动或使用自定义代码修改blob . 你应该在功能应用程序启动之前这样做 .
由您决定是否可以/想要这样做 . AFAIK,没有简单和官方的方法来实现这一目标 .