분산 시스템 6

Zipkin을 이용한 MSA 환경에서 분산 트렌젝션의 추적 #2 - Spring과 Zipkin을 이용한 추적

Zipkin을 이용한 MSA 환경에서 분산 트렌젝션의 추적 #2 Spring Sleuth를 이용한 Zipkin 연동 조대협 (http://bcho.tistory.com) 앞글에 이어서 이번에는 실제로 어플리케이션에서 분산 로그를 추적해보도록 한다.스프링 부트 애플리케이션을 Zipkin과 연동하기 위해서는 Sleuth라는 라이브러리를 사용하면 된다.구조우리가 구현하고자 하는 예제의 구조는 다음과 같다. API Client는 User 서비스를 호출하고, User 서비스는 Item 서비스를 호출하여 사용자의 Item 정보를 리턴 받아서 리턴 받은 내용을 API Client에 호출한다.User와 Item 서비스는 모두 Spring Boot 1.5 버전으로 개발하였다. Spring 2.0은 아직 나온지가 얼마되지..

분산 코디네이터 Zookeeper(주키퍼) 소개

ZooKeeper란 무엇인가?조대협 (http://bcho.tistory.com) 소개 분산 시스템을 설계 하다보면, 가장 문제점 중의 하나가 분산된 시스템간의 정보를 어떻게 공유할것이고, 클러스터에 있는 서버들의 상태를 체크할 필요가 있으며 또한, 분산된 서버들간에 동기화를 위한 락(lock)을 처리하는 것들이 문제로 부딪힌다. 이러한 문제를 해결하는 시스템을 코디네이션 서비스 시스템 (coordination service)라고 하는데, Apache Zookeeper가 대표적이다. 이 코디네이션 서비스는 분산 시스템 내에서 중요한 상태 정보나 설정 정보등을 유지하기 때문에, 코디네이션 서비스의 장애는 전체 시스템의 장애를 유발하기 때문에, 이중화등을 통하여 고가용성을 제공해야 한다. ZooKeeper는..

대용량 웹서비스를 위한 마이크로 서비스 아키텍쳐의 이해

마이크로 서비스 아키텍쳐 (MSA의 이해)조대협(http://bcho.tistory.com) 배경 마이크로 서비스 아키텍쳐(이하 MSA)는 근래의 웹기반의 분산 시스템의 디자인에 많이 반영되고 있는 아키텍쳐 스타일로, 특정 사람이 정의한 아키텍쳐가 아니라, 분산 웹 시스템의 구조가 유사한 구조로 설계 되면서, 개념적으로만 존재하던 개념이다.얼마전 마틴파울러(Martin folwer)가 이에 대한 MSA에 대한 개념을 글로 정리하여, 개념을 정립 시키는데 일조를 하였다.이 글에서는 대규모 분산 웹시스템의 아키텍쳐 스타일로 주목 받고 있는 MSA에 대한 개념에 대해서 알아보도록 한다. 모노리틱 아키텍쳐(Monolithic Architecture) 마이크로 서비스 아키텍쳐를 이해하려면 먼저 모노리틱 아키텍쳐 ..

대용량 분산 시스템 아키텍쳐 디자인

대용량 분산 시스템 아키텍쳐 디자인 대용량 분산 시스템에 대한 아키텍쳐 설계에 대한 내용을 공유합니다. 아직 많이 부족합니다. 많은 피드백 부탁드립니다. 1. 아키텍쳐 설계 프로세스 대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론 from Terry Cho 2. 대용량 분산 시스템 아키텍쳐 대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴 from Terry Cho 3. 대용량 분산 시스템 아키텍쳐 디자인 패턴 대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐 from Terry Cho 4. 레퍼런스 아키텍쳐 - SOA 대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐 from Terry Cho 5. 레퍼런스 아키텍쳐 - REST 대용량 분산 아키텍쳐 설계 #5. ..

아파치 분산 데이타 베이스 Cassandra 소개

Introduction of Cassandra 카산드라는 구글의 BigTable 컬럼 기반의 데이타 모델과 FaceBook에서 만든 Dynamo의 분산 모델을 기반으로 하여 제작되어 Facebook에 의해 2008년에 아파치 오픈소스로 공개된 분산 데이타 베이스 입니다. 기존의 관계형 데이타 베이스와 다르게 SQL을 사용하지 않는 NoSQL의 제품중의 하나이며, 대용량의 데이타 트렌젝션에 대해서 고성능 처리가 가능한 시스템이다.(High-Scale). 노드를 추가함으로써 성능을 낮추지 않고 횡적으로 용량을 확장할 수 있다. 얼마전에 트위터도 MySQL에서 Cassandra로 데이타베이스를 전환하였다고 한다.. 자바로 작성되었음에도 불구하고, 데이타베이스라는 명칭에 걸맞게 여러 프로그래밍 언어를 지원합니다..

Cassandra 분산 데이타 베이스

오늘 Facebook에 이어서 Twitter도 MySQL에서 Cassandra 데이타베이스를 사용한다는 기사를 봤습니다. http://www.ciobiz.co.kr/news/articleView.html?idxno=2064 아마 오라클의 MySQL 인수와 관련이 있지 않는가 하는 생각도 듭니다. 예전 천리안,하이텔 PC통신 시절에는 RDBMS가 대용량의 게시물 처리에 맞는 성능을 내지 못해서 ISAM과 같은 파일 시스템 기반의 데이타 저장 구조를 가졌던 것을 기억합니다. Facebook이나 Twitter도 상당히 많은 양의 트렌젝션을 가지고 있는 SNS 사이트중 하나입니다. (거의 대표급이라고 봐야져..) SNS는 복잡한 RDBMS 연산이 필요 없습니다. 오라클과 같은 관계형 데이타베이스의 복잡한 JOI..