OrderService 2개 기동

- Users의 요청 분산 처리
- Orders 데이터도 분산 저장 -> 동기화 문제


두 가지 포트로 분리된 서비스의 H2DB에 같은 유저의 주문 5번이 나뉘어서 저장된다.
해결 방법
- 하나의 Database 사용
- Database 간의 동기화 (Kafka Connector)
- 위 두 가지 방법을 모두 사용 Kafka Connector + DB
Apache Kafka
- Scalar 언어로 된 오픈 소스 메시지 브로커 프로젝트
- 링크드인에서 개발, 2011년 오픈 소스 화
- 실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연 시간을 지닌 플랫폼 제공
- Apple, Netflix, Shopify, Yelp, Kakao, New York Times 등 다양한 기업이 사용
- End-to-End 연결 방식의 아키텍처
- 데이터 연동의 복잡성 증가 (HW, 운영체제, 장애 등)
- 서로 다른 데이터 Pipeline 연결 구조
- 확장이 어려운 구조
모든 시스템으로 데이터를 실시간으로 전송하여 처리할 수 있는 시스템
데이터가 많아지더라도 확장이 용이한 시스템
데이터 흐름

Kafka Broker
- 실행 된 kafka 어플리케이션 서버
- 3대 이상의 Broker Cluster 구성
- Zookeeper 연동
- 역할 : 메타데이터 (Broker ID, Controller ID 등) 저장
- Controller 정보 저장
- n개 Broker 중 1대는 Controller 기능 수행
- Controller 역할
- 각 Broker에게 담당 파티션 할당 수행
- Broker 정상 동작 모니터링 관리