4.6. 데이터 손실을 방지하기 위해 실패에서 복구

session.timeout.msheartbeat.interval.ms 속성을 사용하여 소비자 그룹 내에서 소비자 실패를 확인하고 복구하는 데 걸리는 시간을 구성합니다.

session.timeout.ms 속성은 소비자 그룹 내의 소비자가 비활성 상태로 간주되기 전에 브로커와의 연결이 끊어질 수 있는 최대 시간(밀리초)을 지정하고 그룹의 활성 소비자 간에 재조정 이 트리거됩니다. 그룹이 재조정되면 파티션이 그룹 멤버에게 다시 할당됩니다.

heartbeat.interval.ms 속성은 소비자가 활성 상태이고 연결되어 있음을 나타내기 위해 하트 비트를 확인하는 간격(밀리초)을 지정합니다. 일반적으로 하트비트 간격은 세션 시간 제한 간격보다 일반적으로 세 번째 간격보다 작아야 합니다.

session.timeout.ms 속성을 낮게 설정하면 실패한 소비자가 이전에 감지되고 재조정이 더 빨리 수행될 수 있습니다. 그러나 브로커가 시간에 하트비트를 수신하지 못하고 불필요한 리밸런스를 트리거하지 못하도록 시간 초과를 낮게 설정하지 않도록 주의하십시오.

하트비트 간격을 줄이면 실수로 재조정할 가능성이 줄어들지 만 브로커 리소스의 오버헤드가 더 자주 하트비트가 증가합니다.