假设我们有4个Kafka流实例执行一个有状态操作,如果num.standbyreplicas=4,这个配置不等于使用GlobalKTable而不是KTable吗?
不是。
的确,对于GlobalKTable
,每个Kafka Streams应用程序实例上的所有分区都是完全可用的。但是GlobalKTable
的用例是保存相对静态的数据,用户可以利用这些数据来丰富KStream
的联接。
此外,不能使用GlobalKTable
执行任何有状态操作,也没有返回GlobalTable
的操作。因此,为了在丢失应用程序实例时快速恢复处理,您仍然需要使用备用副本。