Google의 분산 앱 중 하나가 피어의 연결 끊김 (예 : LAN 회선 끊기 등)을 감지하기 위해 하트 비트를 사용하고 있습니다. 심장 박동이 필요합니까?tcp를 사용할 때 심장 박동을 유지해야합니까?
0
A
답변
1
아마도 심장 박동을 느끼지 않으면 무엇을 할 것입니까?
복구 할 수있는 방법이없는 경우 에 하트 비트가 없습니다.
서버에서 클라이언트로 콜백을 사용하는 경우 클라이언트가 손실 된 콜백을 다시 보내도록 서버에 요청할 수있는 방법이 필요합니다. 이는 쉽지 않습니다.
또한 심장 마비가 발생하지 않는다면 모든 종류의 네트워크 지연이있을 수 있으므로 나중에 메시지가 도착하지 않는다는 것을 의미하지는 않습니다. 메시지를 다시 보내면 안전할까요?
심장 박동이 쉽게 비트의 하드 비트가 마음 이 이길하지 않는 경우 수행 할 작업입니다!
1
예. TCP는 물리적 인 연결이 여전히 살아 있다는 것을 보여줄뿐입니다 (즉, 소켓은 라우터 나 OS에 의해 알려지지 않았습니다). 그러나 에 대해에 관해서는 응용 프로그램 가용성에 대해 말할 것입니다. 파이프의 다른 쪽 끝에있는 프로세스가 while(1);
루프에 있고 요청을 처리하지 않으면 실제로 그 프로세스에 연결되어 있지 않습니다.
0
"응용 프로그램 수준"에서 여전히 상대방과 연결되어 있고 응용 프로그램이 여전히 대화 할 수 있다는 것을 알 수있는 좋은 방법입니다. 그렇지 않으면 "상대방"이 "말하기"에 아무 것도 없다는 가정을해야합니다. "상대방이 실제로 35 초 전에 네트워크 연결이 끊어졌습니다"와 분리하기가 어려울 것입니다.
하트 비트가 수신되지 않으면 현재 구현이 밀접한 연결입니다. – Benny