[GCP] Pub/Sub μ μμ Push& Pull μ°¨μ΄ | LIM
π§ Cloud Pub/Sub μ΄λ
λμ©λ λΆμ° ν μλΉμ€μ΄λ©° λ©μμ§ μμ€ν μ΄λ€. λ©μμ§λ₯Ό Queueμ μμλλ ν ν½μ μμ±νκ³ κ·Έ ν ν½μ ꡬλ νλ ꡬλ μλ₯Ό λ§λ€μ΄ λ©μμ§λ₯Ό μλΉνλ μμ€ν μ΄λ€. Pub/Subμ ν΅ν΄ μλΉμ€λ λΉλκΈ°μ μΌλ‘ 100λ°λ¦¬ μ΄μ μ§μ° μκ°μΌλ‘ ν΅μ ν μ μλ€.
π Cloud Pub/Sub μ ν΅μ¬ κ°λ
Topic: κ²μμκ° λ©μμ§λ₯Ό μ μ‘νλ 리μμ€
Message: κ²μμκ° Topic μ μ λ¬ν΄ κ²°κ³Όμ μΌλ‘ ꡬλ μμκ² μ λ¬λλ λ°μ΄ν°μ μμ±μ μ‘°ν©
Subscriber: λ¨μΌ λλ λ€μ€ μ£Όμ μ λν ꡬλ μ μ¬μ©νμ¬ λ©μμ§λ₯Ό μμ νλ μ ν리μΌμ΄μ
Acknowledgement(or "Ack"): Subscriber κ° λ©μμ§λ₯Ό μ μμ μΌλ‘ μμ ν ν ꡬλ μκ° Pub/Sub μ 보λ΄λ μ νΈ. μ΄ Ackμ λ°μ νμΈλ λ©μμ§λ ꡬλ λ©μμ§ νμμ μμ λλ€.
Push and Pull: λ κ°μ§ λ©μμ§ μ μ‘λ°©λ². Pushμ κ²½μ° κ΅¬λ μκ° μ νν μλν¬μΈνΈλ‘ Pub/Sub μ΄ λ©μμ§λ₯Ό 보λ΄λκ². Pullμ κ²½μ° κ΅¬λ μκ° λ©μμ§λ₯Ό Pull νλ κ²
κ·Έμ€ λλ Pushμ Pullμ κ°λ μ΄ μ‘°κΈ ν·κ°λ Έλ€.
βοΈ Push/Pull ꡬλ λ°©λ²
μλ νμ΄λΌμ΄νΈν λΆλΆμ΄ ν΅μ¬μΈ κ² κ°λ€.
Pull: Subscriber κ° Message λ₯Ό μμ²ν λ μ λ¬λ°λ ꡬλ λ°©μ
μ¦, κ·Έλ¦Όκ³Ό κ°μ΄ Pull λ°©μμ μ¬μ©μκ° λ°μ΄ν°λ₯Ό μμ²νλ©΄ Pub/Sub μμ 보λ΄μ£Όλ νμμ΄κ³ Subscriber μκ²μ Ackμ λ°μΌλ©΄ λ©μμ§λ μμ λλ€.
Push: Message κ° μ€λ©΄ λ°λ‘ Subscriber μκ² μ λ¬λλ λ°©μ
Push λ°©μμ Topic μΌλ‘ λ°μ΄ν°κ° μ μ‘λμλ§μ Subscriberμκ² λ°λ‘ 보λ΄μ£Όκ³ Subscriber κ° Ackμ μ μ‘νλ©΄ λ©μμ§λ μμ λλ€.
GCPμ EventArc μλΉμ€κ° μλλ° μ΄ μλΉμ€κ° λ°λ‘ Push λ°©μμΌλ‘ μλλλ€.
λ°λΌλ³΄κ³ μλ νΉμ cloud μλΉμ€μ μ΄λ²€νΈκ° λ°μνλ©΄ ν΄λΉ μ΄λ²€νΈμ λν λ©μμ§λ₯Ό Subscriberμκ² λ³΄λΈλ€.
EventArcμ λν΄ κΆκΈνλ€λ©΄ μ΄ ν¬μ€νΈλ₯Ό μ½μ΄λ³΄λ©΄ μ’λ€. κ°μΈμ μΌλ‘ κ΅¬κΈ μλΉμ€λ μ΄ λΆ λΈλ‘κ·Έλ₯Ό 보면μ λ§μ΄ λ°°μ λ€. νμ¬ EventArcλ₯Ό μ¬μ©ν΄ μ£ΌκΈ°μ μΌλ‘ λ°μ΄ν°λ₯Ό μ²λ¦¬νκ³ μλλ° ν΄λΉ νλ‘μ νΈλ₯Ό μ§ννλ©΄μ μ¬μ©νλ EventArcμ λν κΈμ λ μμΈν μ¨λ΄μΌκ² λ€.
[GCP]Serverless μλΉμ€μΈ Cloud Run μμ보기 5λΆβ—βEventarc λ₯Ό ν΅ν μ΄λ²€νΈ λ°κΈ°
μλ νμΈμ μ΄μ μ΄ μ λλ€.
medium.com
πCloud Pub/Sub μ€μ μμ
λ§μ§λ§μΌλ‘ Pub/Subμ setting μ λν΄μ μμ보μ.
βοΈ Ack Deadline
- How long Pub/Sub waits for the subscriber to acknowledge receipt before resending the message
- Pub/Sub μ΄ subscriber μ ack messageλ₯Ό μΌλ§νΌκΉμ§ κΈ°λ€λ¦¬κ² ν 건μ§μ λν μ€μ μ΄λ€.
- 10s ~ 600s(10m) κΉμ§ μ€μ κ°λ₯νλ€.
- 10sλ‘ λ무 μ§§μΌλ©΄ κ·Έ μ¬μ΄ ackμ λ°μ§ λͺ»ν΄ μ€λ³΅λ λ©μμ§κ° μ¬λ¬ λ² λ°νλ μ μμΌλ ꡬνν μλΉμ€μ λ§κ² μ μ‘°μ νλλ‘ ν΄μΌ νλ€.
βοΈ Dead Letter
- Pub/Sub μλΉμ€κ° λ©μμ§λ₯Ό μ λ¬νλ €κ³ νμ§λ§ ꡬλ μκ° μ΄λ₯Ό νμΈν μ μλ κ²½μ° Pub/Subλ μ λ¬ν μ μλ λ©μμ§λ₯Ό λ°λ λ ν° μ£Όμ λ‘ μ λ¬ν μ μλ€.
βοΈ Retention
- Retain unacknowledged messages for a specified duration. If retain acknowledged messages is enabled, acknowledged messages are retained for the same duration.
- subscriberλ‘λΆν° μ μμ μΈ ackμ λ°μ§ λͺ»ν λ©μμ§λ€(μ¦ μ μ‘λμ§ μμλ€κ³ μ¬κ²¨μ§λ λ©μμ§λ€)μ μΌλ§νΌ λμ 보κ΄νκ³ μμ κ²μΈκ°μ λν μ€μ μ΄λ€.
βοΈ Backoff(Retry Policy)
- μ¬μλ μ μ± μ€ νλλ‘, μ¬μλμ λν ν μ μ€μ νλ μμλ‘ λ³΄λ©΄ λλ€.
- μ§μ λ°±μ€νλ₯Ό μ¬μ©νλ©΄ μ¬μλ μ¬μ΄μ μ μ§μ μΌλ‘ μ’ λ κΈ΄ μ§μ° μκ°μ μΆκ°ν μ μμ΅λλ€. 첫 λ²μ§Έ μ μ‘ μ€ν¨ ν Pub/Subλ μ΅μ λ°±μ€ν μκ°μ κΈ°λ€λ¦° ν μ¬μλν©λλ€. λ©μμ§κ° μ°μν΄μ μ€ν¨ν λλ§λ€ μ§μ° μκ°μ λ λ§μ μκ°μ΄ μ΅λ μ§μ° μκ°(0~600μ΄)κΉμ§ μΆκ°λ©λλ€.
μ°Έκ³ )
https://cloud.google.com/pubsub/docs/handling-failures
λ©μμ§ μ²λ¦¬ μ€ν¨ | Cloud Pub/Sub | Google Cloud
μ견 보λ΄κΈ° λ©μμ§ μ²λ¦¬ μ€ν¨ 컬λ μ μ μ¬μ©ν΄ μ 리νκΈ° λ΄ νκ²½μ€μ μ κΈ°μ€μΌλ‘ μ½ν μΈ λ₯Ό μ μ₯νκ³ λΆλ₯νμΈμ. ꡬλ μλ λ€μν μ΄μ λ‘ λ©μμ§λ₯Ό μ²λ¦¬νμ§ λͺ»ν μ μμ΅λλ€. μλ₯Ό λ€μ΄ λ©
cloud.google.com
https://jhryu1208.github.io/gcp/2021/06/29/Cloud_Pub_Sub/
[GCP] Cloud Pub/Sub
Contents Cloud Pub/Subμ΄λ? Pub/Subμ κ΅¬μ± Pub/Sub λ©μμ§ νλ¦ Pull(κ°μ Έμ€κΈ°)/Push(λ΄λ³΄λ΄κΈ°) ꡬλ λ°©λ² λ©μμ§ μλΉμ€μ μ±λ₯ νλ¨ Pub/Sub ν΅ν©
jhryu1208.github.io
λ€μμ λ©μμ§ ν νλ«νΌμΈ μΉ΄νμΉ΄λ‘ λ―Έλ νλ‘μ νΈλ₯Ό μ§νν΄λ΄μΌκ² λ€!