我是否正确假设我们重命名应用程序时,Kafka 运算符的语义将完全改变,并可能最终通过应用程序代码从“initialOffset”中读取?
如何维护“应用程序名称”定义的语义?
应用程序代码的每次部署都会产生一个新的应用程序,还是只是使用 @ApplicationAnnotation(name="") 实例来定义这个含义?
我是否正确假设我们重命名应用程序时,Kafka 运算符的语义将完全改变,并可能最终通过应用程序代码从“initialOffset”中读取?
如何维护“应用程序名称”定义的语义?
应用程序代码的每次部署都会产生一个新的应用程序,还是只是使用 @ApplicationAnnotation(name="") 实例来定义这个含义?
您始终可以使用 -originalAppId 启动应用程序,操作员应从原始应用程序停止的位置继续。如果您使用的是 kafka 0.9 运算符并以相同的名称启动应用程序,则可以将 initialOffset 设置为“application_or_latest”或“application_or_earliest”,因此运算符应从上次运行中处理的偏移量继续。不同之处在于,如果您指定 -originalAppId,偏移量将从检查点恢复,而另一个将偏移量存储在 kafka 本身中。
您可以使用参数从其先前状态启动应用程序,-originalAppId
并从其先前运行的检查点状态提供纱线应用程序 ID,它应适用于 dag 中的所有运算符,包括 kafka 输入运算符。您还可以使用属性为应用程序提供一个新名称dt.attr.APPLICATION_NAME
。
例如:
launch pi-demo-3.4.0-incubating-SNAPSHOT.apa -originalAppId application_1459879799578_8727 -Ddt.attr.APPLICATION_NAME="pidemo v201"