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 λ±μ΄ λνμ μΈ μ΄λ²€νΈ λΈλ‘컀.
- μ΄λ²€νΈ λΈλ‘컀λ₯Ό λμ
ν¨μΌλ‘μ¨ νμ₯μ±, μ μ°μ±, μ λ’°μ±μ ν보ν μ μμ.
π ν΅μ¬ μμ½
-
μ΄λ²€νΈ λΈλ‘컀λ? : μ΄λ²€νΈ μ€μ¬ ν΅μ μ μ€μ¬νλ μμ€ν
.
-
μ£Όμ νΉμ§ : λΉλκΈ° μ²λ¦¬, νμ₯μ±, μ λ’°μ±.
-
μ¬μ© μ¬λ‘ : μ€μκ° λ°μ΄ν° μ²λ¦¬, λ§μ΄ν¬λ‘ μλΉμ€ ν΅μ .