고객에서 서버로의 재발급 중지

1232 단어 Java

개시하다


이 일은 내가 당사자가 아니라 들어본 적이 있기 때문에 애매한 표현 방식이 많을 것이다.

서버의 응답이 오래 걸렸어요.


클라이언트(Java)에서 LB를 통해 서버에 연결하면 서버의 응답은 n분이 걸린다.n분이 걸리면 팟캐스트의 데이터량이 많고 어떤 의미에서 규격(환영받지 못하는 토크는 없다)이다.
시간이 오래 걸리는 건 알지만 n분이 지나면 같은 요청이 서버로 전송되는 상황이 벌어진다.
같은 요청을 재전송하여 서버 쪽에서 오류가 발생했지만 위 그림 ②에서 누가 진행했는지 알 수 없습니다.고객 측에는 특별한 예외가 없다. 누가 다시 전했는가범인은 고객 자바야. 사용한 LB에서 n분 반응이 없으면 고객에게fin을 되돌려줍니다.자바에서 마음대로 다시 보낼 수 있습니다.이것은RFC2616에 기재된 바와 같이 POST가 연결되지 않을 경우 다시 보내야 한다고 쓰여 있어 자바도 이를 본받았다.
또 이번에는 Commons-Http Client(3.x)를 사용했지만 내부적으로는 자바의 HTTP Client 반을 사용한 것으로 보인다.

JDK 네트워크 속성


여기.에 쓰여 있습니다.
sun.net.http.retryPost(기본값: 진짜)
실패한 HTTP POST 요청을 서버에 자동으로 재전송할지 여부를 결정합니다.이때 "실패"는 서버가 올바른 HTTP 요청이나 IOException을 보내지 않았음을 의미합니다.
위의 속성을 가짜로 설정하면 다시 전송되지 않습니다.
그러나 결과는 n분 반응이 없으면 오류가 발생하기 때문에 아직 철저히 해결되지 않았다.

좋은 웹페이지 즐겨찾기