[Tomcat] 배포 문제 / 톰캣 관리 툴

2010. 5. 28. 10:13Was/Tomcat

================================

갑 :

컨테이너가 서블릿 초기화 파라미터를 한 번만 읽기 때문에, 서블릿이 살아 있는 동안에는 이메일 주소를 수정할 수 없다는 것 아시죠. 솔루션 치고는 좀 멍청한 것 아닙니까.

 

을 :

이 보라구. 그래도 말야 서블릿 소스 코드에다가 하드 코딩하는 것 보단 낫잖아. xml 파일을 수정한 다음 redeploy 버튼만 한번 클릭하면 새로운 주소가 ServletConfig 안에 들어가는 데 말야.

 

================================

Q :

톰캣에는 redeploy 버튼이 없나요?

A :

톰캣에는 배포와 재배포를 위하여 버튼 하나만 꾹 누르면 되는 기능은 없습니다(물론 톰캣에도 관리 툴이 있습니다). 서블릿 초기화 파라미터를 수정하기 위하여 할 수 있는 최악의 상황은 어떤 것이 있을까요? web.xml 파일을 수정하고 난 다음에, 톰캣을 중지하는 거지요(bin/shutdown.bat). 그리고 톰캣을 재시작하면 web.xml을 다시 읽겠지요.

 

 

Q :

참 쉽게도 말하네요. 톰캣을 올렸다 내리는 것이 그리 쉬운 일 입니까? 그렇게 하면 지금 서비스 되고 있는 웹 애플리케이션은 어떻게 됩니까? 전부 중지 되지 않습니까?

A :

맞습니다. 특히나 트래픽이 제법 되는 사이트에서, 서블릿 하나 재배포하자고 서버를 내렸다가 올린다는 것은 조금 문제가 있는 방식입니다. 이것이 바로 대부분의 상용 웹 컨테이너가 핫디플로이(hot redeploy) 기능을 제공하는 이유이기도 합니다. 핫디플로이(hot redeploy)를 하게 되면 서버를 내릴 필요도, 다른 웹 애플리케이션이 중지하지 않아도 된다는 말입니다.

 

사실 톰캣에도 톰캣을 중지하지 않고도, 전체 웹 애플리케이션 배포(deploy), 배포 취소(undeploy), 재배포(redeploy)하는 관리자 툴이 있습니다. 실제 서비스를 열어서 사용중 일 때는 이런 툴을 사용해야 합니다. 그러나 개발하고 테스트할 때는 톰캣을 그냥 내렸다 올리는 것이 속 편할 것입니다. 관리 툴에 대한 자세한 정보를 알고 싶으면 아래 웹사이트를 방문해 보세요.

 

http://jakarta.apache-korea.org/tomcat/tomcat-5.0-doc/manager-howto.html

 

하지만 실제 운영 시에 핫디플로이를 한다는 것이 쉬운 일만은 아닙니다. 초기회 파라미터가 수정되었다고 서비스되고 있는 웹 애플리케이션을 내렸다 올리는 것은 그리 좋은 생각이 아닙니다. 초기화 파라미터가 자주 수정이 되는 경우라면, 데이터베이스나 파일에서 이 정보를 저장하여 읽어오는 메소드를 작성하는 것도 고려해볼만 합니다. 물론 이 방식이 초기화 파라미터로 값을 읽는 것 보다는, 서블릿 코드 실행 시에 부하를 주지만 말입니다.

 

 

출처 : Head First Servlet & JSP 본문 발췌.