2016-11-24 3 views

답변

4

request.timeout.ms은 클라이언트 측에서 구성된 시간 초과입니다. 그것은 클라이언트가 서버가 요청에 응답하기 위해 많은 시간을 기다릴 것이라고 말합니다.

timeout.ms은 카프카 클러스터의 리더에서 구성된 제한 시간입니다. 이것은 서버 측의 타임 아웃입니다. 예를 들어 acks 설정을 all로 설정 한 경우 서버는 모든 팔로워가 리더에게 응답을 보냈을 때까지 응답하지 않습니다. 리더는 모든 추종자가 응답 할 수있는 시간을 timeout.ms까지 기다립니다.

그래서 클라이언트가 서버 (리더)에게 요청을 보냅니다. acks 설정에 따라 서버는 대기하거나 클라이언트에 응답합니다. timeout.ms은 리더가 팔로워를 기다리는 시간이며, request.timeout.ms은 클라이언트가 서버 (리더)를 대기하는 시간입니다.

+0

의 request.timeout.ms를 지정하는 것이 좋습니다 request.timeout.ms의 =의 timeout.ms가 + 네트워크 오버 헤드가? –

+0

그런데 그런 말을 할 수 있습니다. – yaswanth

1

둘 다 공통 기본 네트워크 클라이언트에 사용됩니다. 즉, timeout.ms가 '사용되지 않음'으로 표시되어 있지만 요청으로부터의 응답을 기다리는 최대 시간을 의미합니다. 실제로 timeout.ms는 제작자 측에서만 사용되며 request.timeout.ms는 클라이언트 (제작자와 소비자 포함)와 서버 (스레드 복제 용) 모두에 대해 정의 될 수 있습니다.

카프카가 사용자 대신 timeout.ms 우리가 말할 수있는이 논리에 의해

+0

당신은 timeout.ms가 더 이상 사용되지 않는다고 언급되는 공식 문서의 링크를 제공 할 수 있습니까? –

+1

공식 문서는 업데이트되지 않았지만 소스 코드에서 찾을 수 있습니다. 실제로 timeout.ms를 지정하면 다음과 같은 경고 메시지가 나타납니다. "timeout.ms 구성은 더 이상 사용되지 않으며 곧 제거 될 것입니다. request.timeout.ms를 사용하십시오" – amethystic

+0

나는 카프카 0.10.1.0을 언급합니다. – amethystic