본문 바로가기

Computer Science/대규모 시스템 설계4

분산 시스템을 위한 유일 ID 생성기 설계 📌 분산 시스템이란? 분산 시스템이란 여러 대 컴퓨터들이 네트워크를 통해서 하나의 프로그램의 공유를 하는 것을 말합니다. 👉 분산 시스템에서 사용될 유일 ID 생성기를 설계? auto_increment 속성이 설정된 관계형 데이터 베이스의 기본 키를 쓰면 되지 않을까? 분산 환경에서 접근을 할 수 없으므로 한대의 서버에 불안정함므로 요구를 감당을 할 수 없습니다. 1. 문제 이해 및 설계 범위 확정 👉 요구 사항 ID는 유일해야 합니다. ID는 숫자로만 구성되어야 합니다. ID는 64비트로 표현될 수있는 값이어야 합니다. ID 발급 날짜에 따라 정렬 가능해야 합니다. 초당 10,000개의 ID를 만들 수 있어야 합니다. 2. 개략적 설계안 제시 및 동의 구하기 👉 분산 시스템에서 유일성이 보장되는 ID를.. 2022. 7. 30.
안정 해시 설계 👉 안정 해시 설계 수평적 규모 확장성을 달성하기 위해서는 요청 또는 데이터를 서버에 균등하게 나누는 것이 중요하다. 안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술이다. 해시 키 재배치란? 장애가 발생한 1번 서버에 보관되어 있는 키 뿐만 아닌 대부분의 키가 재분배되었다. 1번 서버가 죽으면 대부분 캐시 클라이언트가 데이터가 없는 엉뚱한 서버에 접속하게 된다는 뜻이다. 이러한 문제를 해결하기 위해 안정 해시 기술이다. 해시 공간과 해시 링 해시 공간(hash space)은 해시 함수f로는 SHA-1을 사용한다고 하고, 그 함수의 출력 값 범위는 x0 부터 xn까지 사이의 값을 갖게 될 것이다. 해시 링(hash ring)은 해시 공간의 양쪽을 구부려 접으면 밑에 동그랍게 만들어진다. 해시.. 2022. 7. 2.
단일장애지점(SPOF) 단일장애지점(SPOF) 시스템의 구성 요소중 동작하지 않으면 전체가 오류로 인해 동작하지 않는다. 컴퓨터 한대를 이터넷을 통해서 이더넷허브에 연결하여 여러 컴퓨터들과 네트워크로 통신할수 있습니다. 쉽게 말해 여러 사용자들이 컴퓨터로 공유하면서 데이터를 주고 받거나WEB,WAS,DATABASE 쪽에 어느 한쪽에 오류로 인해 문제가 생기면 성능도 이상해지고 동작이 중지됩니다. 예방 복잡도 낮추기 복잡한 시스템 필요한 수준까지 복잡도를 분해하여 설계합니다. 복제 복제 시스템은 컴포넌트가 중지되면 다른 컴포넌트로 전환하여 컴포넌트를 두개 이상 유지해야 합니다. 다양성 복제의 특화된 개념으로, 컴포넌트의 기능을 서로 다른 방식으로 설계한다. 같은 기능을 다른 설계로 개발하면, 동일한 조건에서 복제 컴포넌트가 동시.. 2022. 6. 9.
로드밸런서 로드밸런서(Load Balancer) 로드밸런서는 부하 분산 집합(load balancing set)에 속한 웹 서버들에게 트래픽 부하를 고르게 분산하는 역할을 합니다. 클라이언트(Clients)가 원하는 정보 데이터값을 인터넷(Internet)에 요청합니다. 만일 여러 사용자들이 하나의 서버에 데이터값을 보내면 트래픽으로 증가로 인하여 꽉 차게 되서 더이상 하나 서버가 메모리가 사용하기 어려울 것입니다. 이러한 불편한 사항을 개선하기 위해서 로드밸런스(Load Balancer) 로 부하 분산 집합 사용하여 하나의 서버가 아닌 여러개의 서버로 사용자들의 대용량 트래픽을 처리를 할수 있습니다. 장점 하나의 서버가 아닌 여러개 서버를 사용하여 많은 트래픽을 처리할수 있다. 단점 많은 사용자들이 하나의 서버를.. 2022. 6. 8.