기타/MSA3 Kafka 핵심 개념 Kafka모든 애플리케이션은 의미가 있는 데이터를 만들고, 그 다음 처리되어야 하는 작업과 같이 뭔가 중요한 정보를 담고 있다. 따라서 해당 데이터에 알기 위해서는 데이터를 생성된 곳에서 분석할 수 있는 곳으로 옮겨야 하는 만큼 파이프라인(pipeline)이 중요한 핵심적인 요소가 된다고 할 수 있다. 실제 링크드인에서 하루 4.5조 개 이상의 이벤트 스트림을 처리하고 있기 때문에 기존의 Messaging Platform(ex: MQ)로는 처리가 불가능하여 데이터(이벤트) 스트림 처리를 위해 카프카(Kafka)가 개발되었다. Kafka vs RabbitMQKafka와 RabbitMQ 둘 다 메시지 전송 플랫폼을 제공하지만 위 그래프에서도 볼 수 있듯이 카프카가 초당 600MB로 처리량이 훨씬 높은 것을 .. 2024. 11. 12. 사가(Saga) vs 2단계 커밋(2-phase commit, 2PC) 분산 환경에서의 트랜잭션모놀리식 아키텍처(Monolithic Architecture)의 일관성을 보장하기 위해 관계형 데이터베이스를 공유하는 것이 보통이다. 하나의 DB 트랜잭션으로 처리하는 경우에는 개발자가 ACID(원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability))을 보장하는 작업이 매우 단순해진다. 마이크로서비스 아키텍처도 마찬가지로 단일 서비스 내부의 트랜잭션은 ACID를 보장하지만, 여러 서비스의 데이터를 업데이트하는 트랜잭션을 구현 시 각 서비스마다 데이터베이스를 가지고 있기 때문에 데이터 일관성을 보장하기 까다로워진다. 분산 시스템 환경에서 트랜잭션과 데이터 일관성을 다루는 방법에 대해 알아보자. 2PC하나의 트랜잭션으로 데.. 2024. 11. 11. MSA(MicroService Architecture)를 시작하기 위해 알아야 할 사전 지식! MSA(MicroService Architecture)기존 시스템들이 하나의 거대한 형태로 구축되어서 서비스되었다고 하면 마이크로 서비스라는 것은 전체 서비스를 구축하고 있는 개별적인 모듈이나 기능을 독립적으로 개발하고 운영할 수 있도록 세분화된 서비스라고 볼 수 있다. 일반적으로 사용하는 모놀리식 아키텍처와 MSA를 비교하고, MSA를 사용하는 이유에 대해 알아보자. 모놀리식 아키텍처(Monolithic Architecture)모놀리식 아키텍처는 모든 종류의 서비스가 하나의 애플리케이션으로 구성되어 있는 아키텍처를 의미하고 다음과 같은 특징이 있다.하나의 주요 프로세스로 구성모든 서비스가 하나의 DB 엔드포인트를 사용단 한줄만 코드 수정하더라도 모든 서비스 애플리케이션의 재배포가 따름싱글 혹은 멀티 모.. 2024. 10. 22. 이전 1 다음