본문 바로가기

분산처리

(4)
[분산처리] 서버 제작의 여러 방식 네트워크 방식에 대한 이슈 우선, 네트워크 관련 이슈 중 첫번째로 소켓 이벤트 핸들링(소켓 Event Handling)에 대해 알아보려고 합니다. 요즘 많은 핸들링 방식 중에 IOCP(IO Completion Port)가 가장 최적의 기술로 자리 매김하고 있는 추세인데, 초기에는 IOCP의 구현 자체에 중점을 두었다면, 요즘에는 IOCP를 사용해서 데이터를 처리하는 구조에 대한 이슈가 좀 더 많은 편입니다. 즉, 기본적인 Thread Pooling을 기초로 해서 서버의 환경과 목적에 따라 어떤 방식의 처리 프로세스(Process)를 가지는 것이 좋은가에 대한 이슈들이라고 볼 수 있습니다. 그래서 앞으로 IOCP와 관련된 이슈로 알아볼 내용은 IOCP가 어느 정도 좋은 가를 확인하기 위해서 Windows에..
[분산처리] WAS 이중화와 세션클러스터링 WAS 이중화 방법 및 세션 클러스터링 로드밸런싱 방법에는 크게 두가지가 있습니다. 하나는 L4를 이용한 웹서버 로드밸런싱, 그리고 나머지는 WAS 로드밸런싱입니다. L4를 이용한 로드 밸런싱은 하드웨어 영역까지 컨트롤해야 하기때문에 상당히 난이도 있는 기술이라고 할 수 있지만, WAS 로드밸런싱은 아파치에서 제공하는 모듈을 이용하여 조금더 간단하게 설정할 수 있습니다. 일단 여기서 말하는 아파치는 WEB 서버이며, 톰캣에서 로드밸런싱을 지원하지는 않습니다. AJP를 통한 로드밸런싱은 Tomcat의 부하증가나 이중화시에 이용할수 있습니다. 아파치 모듈 중에는 mod_jk, mod_proxy을 이용해서 이중화를 해주는 것이 가능합니다. L4 로드밸런싱 방법은 HAProxy 같은 소프트웨어 혹은 L4 하드웨..
[분산처리] 대용량 세션을 위한 로드밸런서 대용량 서비스를 운영하려면 부하 분산은 필수입니다. 대용량 트래픽을 장애 없이 처리하려면 여러 대의 서버에 적절히 트래픽을 분배해야 합니다. 기존에는 세션 서버를 위한 로드밸런서로 DNS와 L4를 이용하였으나 네이버에서는 최적화된 분산을 위하여 로드밸런서를 직접 개발했다고 합니다. 본 포스팅은 학습을 위해 http://d2.naver.com/helloworld/605418 문서를 참조하여 작성했습니다. 기존 로드 밸런서의 제약 사항 DNS(Domain Name System) DNS는 도메인 이름을 IP 주소로 변환하는 기술입니다. 하나의 도메인 이름을 라운드로빈(Round Robin) 방식으로 여러 개의 IP 주소로 변환한다면 이것만으로도 쉽게 부하 분산이 가능합니다. 하지만 여기에는 두가지 단점이 있습..
[하둡] 하둡 분산처리시스템 구성요소 분산 처리 시스템 하나의 작업에 여러대의 machine을 두고, MPI(Message Passing Interface)를 사용하는 시스템입니다. 하지만, 분산처리 시스템에도 문제가 있습니다. 분산 처리 시스템의 문제점- 복잡한 프로그래밍(데이터 프로세스의 sync 유지) : MPI가 프로그래밍 하기 굉장히 복잡합니다.- Partial failures : 수많은 컴퓨터를 사용하는 경우에 일부의 컴퓨터가 고장나는 경우 시스템이 동작하지 않습니다. GFS(구글파일시스템)과 MapReduce가 나오기전, 분산처리 시스템은 Message Passing Inteface가 너무 복잡하여 프로그래밍하기가 어려웠습니다. 또한, 수만대의 분산 컴퓨터들이 하나만 고장이나도 동작을 안하게 되는 문제가 있었습니다. 이 문제를 ..