@@ -9,7 +9,7 @@ author: devFancy
99
1010## 선착순 이벤트 배너
1111
12- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-1.png )
12+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-1.png )
1313
1414- 역대급 이벤트
1515- 어떤 반응인지 커뮤니티를 참고
@@ -19,7 +19,7 @@ author: devFancy
1919
2020- 장애나는 날 전화가 폭주함
2121
22- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-3.png )
22+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-3.png )
2323
2424- 2가지 큰 목표를 잡음
2525- 개발 기간이 1~ 2주 → 빠르게 개발, 최대한 기존 로직은 건드리지 않고 새로운 시스템을 가지고 구성하려했음
@@ -32,23 +32,23 @@ author: devFancy
3232
3333## 기존의 주문 시스템
3434
35- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-4.png )
35+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-4.png )
3636
3737- 주문에 들어가기전에 여러 유효성 검사처리를 하고, 해당 데이터들을 세션에 저장을 한다.
3838- 고객이 주문지연 웹 뷰에 들어와서 정보를 입력 → 결제 → 결제완료 ⇒ 하나의 주문 건 완성
3939- 하나의 주문이 완성하려면 수십건의 API 요청을 해야함
4040
41- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-5.png )
41+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-5.png )
4242
4343- 이렇게 “주문”은 여러 개의 시스템과 연계되어있음
4444
4545### 이벤트시 문제점
4646
47- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-6.png )
47+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-6.png )
4848
4949- 평소보다 10배이상 트래픽이 발생하게 됨
5050
51- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-7.png )
51+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-7.png )
5252
5353- 주말피크와 이벤트 최고 RPM 차이는 약 ** 150배** 차이가 남
5454- 예상하지 못한 트래픽이 발생함(예상: 10배, 실제 150배)
@@ -64,7 +64,7 @@ author: devFancy
6464- 김성주의 안내로 번호표를 통해 대기줄을 빠르게 정리되고 있었음
6565- 저희는 이 김성주에 집중을 했음 ⇒ 모든 트래픽을 차례대로 처리할 수 있을 만큼 들여보내자.
6666
67- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-8.png )
67+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-8.png )
6868
6969- 일단 Redis를 선택함
7070
@@ -76,38 +76,38 @@ author: devFancy
7676
7777> 어떤 요구사항인가?
7878
79- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-9.png )
79+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-9.png )
8080
8181### 해결 - Sorted set
8282
83- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-10.png )
83+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-10.png )
8484
8585- 해당 자료구조 하나로 쉽게 처리할 수 있었음
8686
8787> 레디스 사용시 고려사항
8888
89- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-11.png )
89+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-11.png )
9090
9191- Keys 명령어는 쓰면 장애가 남
9292- 각 명령어의 시간복잡도를 확인해봐야 함 ⇒ Sorted Set의 경우 시간복잡도 O(log(n))
9393
9494### 큐 시스템 플로우
9595
96- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-12.png )
96+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-12.png )
9797
9898- 이벤트 주문 요청을 하면 → 대기번호 발급 받음
9999
100- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-13.png )
100+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-13.png )
101101
102102- 현재 내 상태(참가열, 대기열)에 있는지 → 대기열이면 몇 번인지 조회
103103
104- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-14.png )
104+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-14.png )
105105
106106프로모션 스케줄러를 통해서 뒤로 흘리는 TPS를 조절
107107
108- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-15.png )
108+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-15.png )
109109
110- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-16.png )
110+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-16.png )
111111
112112- 순간적인 ** 대량 트래픽** 소화
113113- 이제는 트래픽을 일정하게 보낼 수 있게 됨
@@ -116,22 +116,22 @@ author: devFancy
116116
117117하나의 문제점 → ` 큐 시스템 ` 을 ** 중간에 어떻게 끼워넣지?**
118118
119- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-17.png )
119+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-17.png )
120120
121121- 우아한형제들 회사에서 만든 ` 주문라우터 ` 를 이용
122122- ` 주문라우터 ` 에 있는 해당 Rule을 이용한다.
123123
124- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-18.png )
124+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-18.png )
125125
126126- 회원번호, 업소번호를 보고 → Rule에 들어있으면 ⇒ 설정된 post로 라우팅을 해준다. ⇒ 큐 시스템으로 넘어간다.
127127- 만약 Rule 에 들어있지 않으면 → 주문 으로 넘어간다.
128128
129- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-19.png )
129+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-19.png )
130130
131131- 일반 사용자는 기존 프로세스의 경우 ** 주문 라우터 → 주문**
132132- 쿠폰발급 + 이벤트업소의 경우 ** 주문 라우터 → 큐 시스템 → 주문** 순으로 구현
133133
134- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-20.png )
134+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-20.png )
135135
136136- AWS 사용하는 경우 주문 시스템을 “이벤트용 주문”에 복제해서 큐 시스템 뒤에 붙였음
137137- 이렇게 하면 일반 사용자는 해당 영향을 받지 않도록 시스템을 격리시킴
@@ -140,19 +140,19 @@ author: devFancy
140140
141141## 최종 아키텍쳐
142142
143- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-21.png )
143+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-21.png )
144144
145145> 모니터링 - CloudWatch
146146
147- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-22.png )
147+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-22.png )
148148
149149- 주요 서버들, 확인해야할 지표들만 가지고 대시보드로 구성해서 모니터링을 진행함
150150
151- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-23.png )
151+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-23.png )
152152
153153- 어드민을 만들어서 대기열, 참가열 모니터링, 변수 셋팅을 했음
154154
155- ![ ] ( /assets/img/tech_insight /Woowa-Tech-Talk-First-Come-First-Served-Event-24.png )
155+ ![ ] ( /assets/img/technology/woowabros /Woowa-Tech-Talk-First-Come-First-Served-Event-24.png )
156156
157157- 이상 이벤트에 대한 대응을 잘했음
158158
0 commit comments