Home
>
Architecture
>
๐๏ธ[Architecture] ์ด๋ฒคํธ ๋ธ๋ก์ปค(Event Broker)๋ ๋ฌด์์ผ๊น?
Architecture
Software Architecture
Distributed System
๐๏ธ[Architecture] ์ด๋ฒคํธ ๋ธ๋ก์ปค(Event Broker)๋ ๋ฌด์์ผ๊น?
๐ Intro.
- โ๏ธ ์ด๋ฒคํธ ๋ธ๋ก์ปค(Event Broker)๋ ์์คํ
์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ฐ์ ์ด๋ฒคํธ(Event)๋ฅผ ์์ ํ๊ฒ ์ ๋ฌํ๊ณ ๊ด๋ฆฌํ๋ ์ค๊ฐ์ ์ญํ ์ ํ๋ ์ํํธ์จ์ด.
- โ๏ธ ์ฃผ๋ก ์ด๋ฒคํธ ์ค์ฌ ์ํคํ
์ฒ(Event-Driven Architecture, EDA)์์ ์ฌ์ฉ๋๋ฉฐ, ๋น๋๊ธฐ์ ํต์ ๊ณผ ์์คํ
๊ฐ์ ๋์จํ ๊ฒฐํฉ(Loose Coupling)์ ์ง์ํจ.
โ
1๏ธโฃ ์ด๋ฒคํธ(Event)๋?
- โ๏ธ ์ด๋ฒคํธ(Event)๋ ์์คํ
๋ด์์ ๋ฐ์ํ ํน์ ์ํฉ์ด๋ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ฏธํจ.
- โ๏ธ ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ์ฃผ๋ฌธ์ ์์ฑํ์ ๋(Order Created), ์ํ ์ฌ๊ณ ๊ฐ ๋ถ์กฑํ ๋(Stock Depleted) ๋ฑ์ด ์ด๋ฒคํธ(Event)์.
โ
2๏ธโฃ ์ด๋ฒคํธ ๋ธ๋ก์ปค์ ์ญํ .
-
1. ์ด๋ฒคํธ ์์ง(Event Ingestion)
- โ๏ธ ๋ค์ํ ์์ค(์ ํ๋ฆฌ์ผ์ด์
, ์๋น์ค IoT ์ฅ์น ๋ฑ)๋ก ๋ถํฐ ์ด๋ฒคํธ๋ฅผ ์์งํจ.
-
2. ์ด๋ฒคํธ ๋ผ์ฐํ
(Event Routing)
- โ๏ธ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ์ ํ ๋์(๊ตฌ์กฑ์, ์๋น์ค)์๊ฒ ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํจ.
-
3. ์ด๋ฒคํธ ํ์(Event Queuing)
- โ๏ธ ์ด๋ฒคํธ๋ฅผ ์์๋ก ์ ์ฅํ์ฌ ์ด๋ฒคํธ ์์ค์ ๋ฐฉ์งํฉ๋๋ค.
-
4. ๋น๋๊ธฐ ์ฒ๋ฆฌ(Asynchronous Processing)
- โ๏ธ ์ด๋ฒคํธ๋ฅผ ๋ฐํํ ์์คํ
๊ณผ ์๋นํ๋ ์์คํ
์ด ๋
๋ฆฝ์ ์ผ๋ก ์๋ํฉ๋๋ค.
-
5. ํ์ฅ์ฑ(Scalability)
- โ๏ธ ๋ง์ ์์ ์ด๋ฒคํธ๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
-
6. ๋ด๊ตฌ์ฑ(Durability)
- โ๏ธ ์ด๋ฒคํธ๊ฐ ์์ค๋์ง ์๋๋ก ์์ ํ๊ฒ ์ ์ฅํฉ๋๋ค.
โ
3๏ธโฃ ์ด๋ฒคํธ ๋ธ๋ก์ปค์ ๋์ ๋ฐฉ์.
-
1. ์ด๋ฒคํธ ๋ฐํ(Publish)
- โ๏ธ ์ด๋ฒคํธ ์์ฐ์(Producer)๊ฐ ์ด๋ฒคํธ ๋ธ๋ก์ปค์ ์ด๋ฒคํธ๋ฅผ ๋ฐํํจ.
-
2. ์ด๋ฒคํธ ์ ์ฅ(Store)
- โ๏ธ ์ด๋ฒคํธ ๋ธ๋ก์ปค๋ ๋ฐ์ ์ด๋ฒคํธ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ผ์์ ์ผ๋ก ๋ณด๊ดํจ.
-
3. ์ด๋ฒคํธ ๋ผ์ฐํ
(Routing)
- โ๏ธ ์ ์ฅ๋ ์ด๋ฒคํธ๋ฅผ ๊ท์น์ ๋ฐ๋ผ ํน์ ๊ตฌ๋
์(Consumer)์๊ฒ ์ ๋ฌํจ.
-
4. ์ด๋ฒคํธ ์๋น(Consume)
- โ๏ธ ์ด๋ฒคํธ ์๋น์(Consumer)๊ฐ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ ์ฒ๋ฆฌํจ.
โ
4๏ธโฃ ์ด๋ฒคํธ ๋ธ๋ก์ปค(Event Broker) vs ๋ฉ์์ง ๋ธ๋ก์ปค(Message Broker)
๊ตฌ๋ถ |
์ด๋ฒคํธ ๋ธ๋ก์ปค(Event Broker) |
๋ฉ์์ง ๋ธ๋ก์ปค(Message Broker) |
์ฃผ์ ๊ฐ๋
|
์ด๋ฒคํธ(Event)๋ฅผ ์ ๋ฌ |
๋ฉ์์ง(Message)๋ฅผ ์ ๋ฌ |
๋ฐ์ ์์ |
์์คํ
์์ ์ํ ๋ณ๊ฒฝ์ด ๋ฐ์ํ ๋ |
์์คํ
๊ฐ ํต์ ์ด ํ์ํ ๋ |
๋ชจ๋ธ |
์ฃผ๋ก Pub/Sub (ํผ๋ธ๋ฆฌ์-์๋ธ์คํฌ๋ผ์ด๋ธ) |
์ฃผ๋ก P2P (ํฌ์ธํธ-ํฌ-ํฌ์ธํธ) |
์์ |
Apache Kafka, AWS EventBridge |
RabbitMQ, AWS SQS |
์ฃผ์ ์ฌ์ฉ ์ฌ๋ก |
์ด๋ฒคํธ ์คํธ๋ฆผ ์ฒ๋ฆฌ, ์ค์๊ฐ ๋ถ์ |
๋น๋๊ธฐ ์์
์ฒ๋ฆฌ, ํ ๊ธฐ๋ฐ ํต์ |
โ
5๏ธโฃ ์ด๋ฒคํธ ๋ธ๋ก์ปค์ ์ฃผ์ ํน์ง.
-
1. Publisher-Subscriber ํจํด(Pub/Sub)
- โ๏ธ ์ด๋ฒคํธ ๋ฐํ์๋ ์ด๋ฒคํธ๋ฅผ ๋ธ๋ก์ปค์ ์ ๋ฌํ๊ณ , ๊ตฌ๋
์๋ ๊ด์ฌ ์๋ ์ด๋ฒคํธ๋ฅผ ์์ ํจ.
-
2. ๋น๋๊ธฐ ํต์
- โ๏ธ ์ด๋ฒคํธ๊ฐ ๋ธ๋ก์ปค๋ฅผ ํตํด ์ ๋ฌ๋๋ฏ๋ก ์์คํ
๊ฐ ๋๊ธฐํ๊ฐ ํ์ํ์ง ์์.
-
3. ๋์จํ ๊ฒฐํฉ(Loose Coupling)
- โ๏ธ ์์ฐ์์ ์๋น์๋ ์๋ก ์ง์ ์ฐ๊ฒฐ๋์ง ์๊ณ ๋ธ๋ก์ปค๋ฅผ ํตํด ํต์ ํจ.
-
4. ์ด๋ฒคํธ ์์ฑ(Event Sourcing)
- โ๏ธ ๋ชจ๋ ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋กํ๊ณ ํ์ํ ๋ ์ฌ์ํ ์ ์์.
-
5. ํ์ฅ์ฑ ๋ฐ ์ ๋ขฐ์ฑ
- โ๏ธ ์๋ฐฑ๋ง ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ณ , ์ด๋ฒคํธ ์์ค์ ๋ฐฉ์งํจ.
โ
6๏ธโฃ ์ด๋ฒคํธ ๋ธ๋ก์ปค์ ์ฌ์ฉ ์ฌ๋ก.
-
1. ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ.
- โ๏ธ ์ค์๊ฐ ๊ฑฐ๋, ์ฌ์ฉ์ ํ๋ ๋ก๊ทธ ์ฒ๋ฆฌ.
-
2. ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ.
- โ๏ธ ์๋ก ๋
๋ฆฝ๋ ์๋น์ค ๊ฐ์ ์ด๋ฒคํธ ์ ๋ฌ.
-
3. IoT ๋ฐ์ดํฐ ์คํธ๋ฆผ.
- โ๏ธ IoT ์ฅ์น๋ก๋ถํฐ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์์ง ๋ฐ ๋ถ์.
-
4. ์๋ฆผ ์์คํ
(Notification System).
- โ๏ธ ์ด๋ฒคํธ ๋ฐ์ ์ ์ฌ์ฉ์์๊ฒ ์๋ฆผ ์ ์ก.
-
5. ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ(Data Pipeline).
- โ๏ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋จ๊ณ ๊ฐ ์ด๋ฒคํธ ์ ๋ฌ.
โ
7๏ธโฃ ๋ํ์ ์ธ ์ด๋ฒคํธ ๋ธ๋ก์ปค ๋๊ตฌ.
์ด๋ฒคํธ ๋ธ๋ก์ปค |
์ฃผ์ ํน์ง |
Apache Kafka |
๋๋์ ๋ฐ์ดํฐ ์คํธ๋ฆผ, ๋์ ์ฒ๋ฆฌ๋ |
AWS EventBridge |
AWS ์๋น์ค ๊ฐ ์ด๋ฒคํธ ํตํฉ |
Google Cloud Pub/Sub |
์ค์๊ฐ ๋ฉ์์ง ๋ฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ |
Azure Event Hubs |
๋์ฉ๋ ๋ฐ์ดํฐ ์์ง ๋ฐ ๋ถ์ |
RabbitMQ |
์ด๋ฒคํธ ๋ฐ ๋ฉ์์ง ํ ์ง์ |
โ
8๏ธโฃ ์ด๋ฒคํธ ๋ธ๋ก์ปค๋ฅผ ์ฌ์ฉํ ๋์ ๊ณ ๋ ค์ฌํญ.
-
1. ์ฒ๋ฆฌ๋(Throughput):
- โ๏ธ ์ผ๋ง๋ ๋ง์ ์ด๋ฒคํธ๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์ ์๋๊ฐ?
-
2. ์ง์ฐ ์๊ฐ(Latency):
- โ๏ธ ์ด๋ฒคํธ๊ฐ ์ผ๋ง๋ ๋น ๋ฅด๊ฒ ์ ๋ฌ๋๋๊ฐ?
-
3. ์ ๋ขฐ์ฑ(Reliability):
- โ๏ธ ์ด๋ฒคํธ๊ฐ ์์ค๋์ง ์๋๊ฐ?
-
4. ํ์ฅ์ฑ(Scalability):
- โ๏ธ ์ฆ๊ฐํ๋ ์ด๋ฒคํธ ์๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๊ฐ?
-
5. ๋ณด์(Security):
- โ๏ธ ์ด๋ฒคํธ ๋ฐ์ดํฐ๋ ์์ ํ๊ฒ ๋ณดํธ๋๋๊ฐ?
โ
9๏ธโฃ ์ด๋ฒคํธ ๋ธ๋ก์ปค ๋์
์ ์ด์ .
- 1. ์์คํ
๊ฐ ๋์จํ ๊ฒฐํฉ.
- 2. ํ์ฅ์ฑ ๋ฐ ์ ์ฐ์ฑ.
- 3. ๊ณ ๊ฐ์ฉ์ฑ(High Availability)
- 4. ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ
- 5, ์ค์๊ฐ ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ์ฒ๋ฆฌ
๐ ๊ฒฐ๋ก
- ์ด๋ฒคํธ ๋ธ๋ก์ปค(Event Broker)๋ ์์คํ
๊ฐ ์ด๋ฒคํธ๋ฅผ ์์ ํ๊ฒ ์ ๋ฌํ๊ณ ๋ผ์ฐํ
ํ๋ ์ค์ ํ๋ธ ์ญํ ์ ํจ.
-
Apache Kafka, AWS EventBridge, Google Cloud Pub/Sub ๋ฑ์ด ๋ํ์ ์ธ ์ด๋ฒคํธ ๋ธ๋ก์ปค.
- ์ด๋ฒคํธ ๋ธ๋ก์ปค๋ฅผ ๋์
ํจ์ผ๋ก์จ ํ์ฅ์ฑ, ์ ์ฐ์ฑ, ์ ๋ขฐ์ฑ์ ํ๋ณดํ ์ ์์.
๐ ํต์ฌ ์์ฝ
-
์ด๋ฒคํธ ๋ธ๋ก์ปค๋? : ์ด๋ฒคํธ ์ค์ฌ ํต์ ์ ์ค์ฌํ๋ ์์คํ
.
-
์ฃผ์ ํน์ง : ๋น๋๊ธฐ ์ฒ๋ฆฌ, ํ์ฅ์ฑ, ์ ๋ขฐ์ฑ.
-
์ฌ์ฉ ์ฌ๋ก : ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๋ง์ดํฌ๋ก ์๋น์ค ํต์ .