假设我们有4个Kafka流实例执行有状态的操作,如果num.standby.replicas=4,这个配置是不是等于使用GlobalKTable而不是KTable?
其实不然。
的确,如果使用 GlobalKTable
所有的分区在每个Kafka Streams应用实例上都是完全可用的。但是,在使用案例中,一个 GlobalKTable
是用来保存相对静态的数据,用户可以利用这些数据来丰富连接的内容。KStream
.
此外,你不能用一个 "有状态的 "来执行任何有状态的操作。GlobalKTable
,而且没有任何返回一个 GlobalTable
. 所以,如果要在失去应用实例的情况下快速恢复处理,你仍然需要使用备用副本。