Redhat Linux의 Virtual Server 사용을 하고 있는데, 한가지 문제점이 있다.
Tomcat 환경에서 동작하는 JSP 페이지에서 중간 내용까지 출력 후 버퍼를 flush하는 경우, 버퍼의 내용이 전송되어 클라이언트에 보내지고, 그 부분까지 렌더링이 되어야 하는데(렌더링은 브라우저마다 약간의 차이가 있다. IE/FF의 경우 잘 동작하지만, 크롬에서는 잘 안되는 듯) 웹서버에 직접 접근하여 결과를 보는 경우에는 의도한 대로 동작하지만, Virtual Server를 통해 가상 IP로 접속하는 경우 의도대로 동작되지 않는다.

구성은 LVS 세팅에서 Network 타입은 Direct Routing으로 설정되어 있으며, Real Server는 2개의 노드로 되어 있다.

매뉴얼을 찾아보고, 구글링을 해봐도 Virtual Server에서의 패킷 flush 옵션을 찾을 수 없었으며 결국 LVS 사용을 일단 포기한 상태 ㅠㅠ


버퍼 flush의 경우, 민감하게 생각되지 않을 수 있지만 가능한 부분까지 먼저 출력해줘야 사용자 입장에서는 웹 서비스가 동작하고 있다는 것을 느낄 수 있기에 그냥 넘어갈 수 없는 부분이다.

혹시, 누가 이 문제에 대한 해결책을 줄 수 없을까? ㅠㅠ

관련 포스트 : Apache + Tomcat + mod_jk 연동시 flush 문제

흑... 이 문제가 아닌가보다... Apache 문제인듯 한데... 뭔지 잘 모르겠다 ㅠ.ㅠ
Posted by 봉보리봉봉

댓글을 달아 주세요

  1. chadr 2009.07.08 21:10  댓글주소  수정/삭제  댓글쓰기

    사실 html 렌더링은 웹브라우저 몫이라서 온 데이터까지 렌더링을 할지 안할지는 서버에서 어떻게 할 방법이 없긴 해요.
    하지만 페이지가 꽤나 큰 것이라면 온 만큼 먼저 보여주는 것이 사용자에게는 더 편리하긴 할거 같아요.

    그런데 아예 다르게 생각해보는건 어떨까요? 로딩 메시지를 표시하는거에요.

    일단 간단히 로딩을 출력하는 html을 먼저 보내고 나서 시간이 오래 걸리는 페이지를 후에 한꺼번에 전송하는 것이지요.

    frame이나 iframe을 이용하여 일단 로딩 한다는 메시지를 출력하고 그 안에서 실제로 보여줄 페이지를 백그라운드로 서버에 요청 후 서버에서 연산이 다 끝나면 페이지가 한번에 보이도록 웹브라우저에 한꺼번에 전송하는 것이지요.

    • 봉봉 2009.07.09 15:59  댓글주소  수정/삭제

      내가 보여주고 싶어하는건 메뉴 부분이라서...
      근데, 메뉴 부분을 프레임으로 구성하는 건 좀 아닌것 같고...

      일단은 LVS 안거치고 바로 웹서버로 가게 해놨는데...
      아직 트래픽이 많은건 아니니, 고민해봐야지~~ 의견 고마워~~


블로그 이미지
봉보리봉봉

공지사항

Yesterday12
Today4
Total152,095