[Java] Java를 활용한 분산 시스템

2024. 3. 19. 16:13기술 창고/Java

728x90
SMALL

분산 시스템은 어디에서나 존재하는 시스템입니다.

영화를 보거나 온라인 쇼핑, 휴대폰으로 차량 공유 서비스들을 이용할 때 인터넷에서 무언가를 검색할 때마다 사실 우리는 앱이나 웹 페이지를 통해 그 뒤에 있는 분산  시스템과 통신합니다.

이런 서비스를 제공하는 모든 기업은 전 세계에 걸쳐 고도로 확장이 가능한 대규모 분산 시스템을 운영하여 매일 수백만명의 사용자와 데이터를 처리하고, 일정하고 원활한 사용자 경험을 제공합니다.

 

또한, 클라우드에서 호스팅 되는 아주 간단한 웹사이트 조차도 분산 시스템에서 동작합니다.

클라우드는 특별히 기업을 위해 구축된 복잡한 분산 시스템인 만큼 소프트웨어 개발자들이 맡기 때문에 사용자들은 제품에 집중하고 나머지 부분은 클라우드 공급 업체가 처리하도록 할 수 있습니다.

 

 

중앙 집중적 시스템과의 차이점

분산 시스템을 사용하기 이전에 먼저 중앙 집중적 시스템에 대해 알아보겠습니다.

 

먼저, 한 서비스를 만들고 이를 사용하지 않는 컴퓨터를 통해 웹 서비스를 호스팅하게 되었을 경우를 가정했을 때, 배포한 서비스에 다수의 사용자들이 몰리게 될 것입니다.

 

 

현재 단일 중앙 집중형 시스템으로 해당 서비스 및 서버를 운영하고 있기 때문에 사용자들이 가중될수록, 서버에 대한 트래픽이 가중되면서 전체적으로 과부하가 걸릴 것입니다.

이에 대한 대처 방안으로 운영하고 있는 컴퓨터(하드웨어)의 성능을 업그레이드시켜 일시적으로 대처할 수 있습니다.

이를 수직적 확장이라고 말합니다.

 

 

하지만 컴퓨터 자체의 성능을 무한히 업그레이드 시킬 수도 없을 뿐더러, 지속적인 업그레이드를 통해 발생되는 비용 또한 기하급수적으로 많아질 것입니다.

또한, 만약 정전이나 디도스 공격과 같은 다양한 요인으로 인해 컴퓨터 자체에 문제가 발생된다면, 엄청난 악영향을 받을 것입니다.

당연히 로딩도 많이 느려질 것이고 사용자들에 대한 신뢰도도 많이 내려갈 것입니다.

 

이러한 중앙 집중형 시스템에서 발생될 수 있는 문제점들을 분산 시스템을 통해 개선할 수 있는 것입니다.

 

 

분산 시스템 정의

따라서, 분산 시스템은 네트워크를 통해 서로 통신하며, 서로 다른 컴퓨터에서 실행되는 여러 프로세스로 구성된 시스템으로 공동의 목표를 달성하기 위해 상태를 공유하거나 함께 작업하는 시스템입니다.

 

 

 

728x90
반응형
LIST