- 精準一次怎么保證?可以設置為以下2個
- 對齊
- 當有一個barrier比較快時,輸入緩沖區阻塞,當另外一個barrier到來時,才進行備份,所以數據不會重復。
- 優點:不會造成數據重復
- 缺點:會造成數據積壓,OOM
- 不對齊
- 當有一個barrier到來時,直接將barrier置到最后,然后將所有緩沖區的數據和狀態進行備份,然后將kafka提交,然后將慢的barrier也置到最后,將所有緩沖區的數據和狀態進行備份,然后將kafka提交。
- 優點:加快了ck
- 缺點:由于備份了大量數據,會造成IO壓力大,磁盤存儲壓力大
- 對齊
- 至少一次怎么保證?
- 對齊
- 當有一個barrier比較快時,輸入緩沖區不阻塞,直接向下游流動,而barrier會等待另外一個barrier,當此次ck備份成功后,JM注入新的barrier,然后到一半的時候,備份失敗了,kafka回滾,從HDFS中恢復上次的ck,恢復kafka的offset,由于不阻塞,所以會重新從kafka中拉取到重復的數據進行計算,就造成了數據的重復,就是至少一次語義。
- 優點:不阻塞,不會造成數據積壓,OOM
- 缺點,會造成數據重復