https://youtu.be/amTJyIE1wO0?si=0n8WlzfYEt5wAto9
νμ¬ κ΅¬μ±λ λλΆλΆμ μν μμ€ν μ μλμ κ°μ μμλ‘ κ°μ λμ΄ μλ€. κΈμ΅κΆ μ·¨μ μ μν΄μλ Oracle, Java, C 곡λΆκ° νμνλ€λ μ¬μ€μ μ΅ν μκ³ μλ μ¬μ€μ΄λ€. μ΄λ¬ν μμ€ν μ΄ κ³μλμ΄ μ¨ μ΄μ λ μ€λ κΈ°κ° μ μ§λμκΈ° λλ¬Έμ μμ μ±μ΄ λκ³ κ°λ°μλ€μ΄ λΉ λ₯΄κ² μ μ κ°λ₯νκΈ° λλ¬Έμ΄λ€. ν μ€μμλ μ΄λ¬ν μ°¨μΈλ μμ€ν μμ νλ°μ§ λμκ° μΌλΆ μμ€ν μ MSAλ‘ λΆλ¦¬ν΄λΈ μ΄μΌκΈ°λ₯Ό λ€λ €μ€λ€.
μνκΆ κ°λ°μμλ μ±λκ³, κ³μ κ³ λ± κ΄λ ¨ μ§μ μ’ μ¬μκ° μλ μΌλ°μΈμ΄ λ€μΌλ©΄ μ½κ² μ΄ν΄νκΈ° μ΄λ €μ΄ λΆλ₯ μ©μ΄κ° μ°μΈλ€.
κ³μ κ³λ μ€μ λ‘ μ¬μ©μμ λμ λ€λ£¨λ©° μλ³Έ λ°μ΄ν°κ° μ μ₯λλ μμμ΄λ€. μλ²μ DBκ° νλμ΄λ―λ‘ λ€νΈμν¬ κ΅¬μ‘°κ° λ¨μνκ³ DBκ° νλμ΄λ―λ‘ νΈλμμ μ²λ¦¬μ μ 리νλ€. μ€λ₯ μμ΄ λμνλ κ²μ΄ λ§€μ° μ€μνλ―λ‘ μ±λ₯μ ν¬μνλλΌλ μ΄λ¬ν ꡬ쑰λ₯Ό μ μ§νκ³ μλ€.
μ±λκ³λ μ μ μ μμ²μ μ§μ λ°μ μ²λ¦¬νλ μμμ΄λ©°, νμν κ²½μ°μλ κ³μ κ³λ μΈλΆ APIλ₯Ό μ¬μ©νμ¬ μ²λ¦¬νκ² λλ€. μ΄ λ μ±λκ³λ DBκ° λΆλ¦¬λμ΄ μκΈ° λλ¬Έμ νΈλμμ μ²λ¦¬κ° μ΄λ ΅κ³ λ€νΈμν¬ κ΅¬μ‘°κ° λ³΅μ‘νλ€. νμ§λ§ νΉμ μλ²λ DBμ λΆνκ° λͺ°λ¦΄ λ μ€μΌμΌ μμνκΈ°μ μ©μ΄νλ€.
λ§μ½ κ³μ κ³, μ¦ μ½μ΄λ± νΉ μλ²μ νΉμ μμ²λ€λ‘ μΈν΄ λΆνκ° λͺ°λ¦¬κ² λλ€λ©΄ μ 체 μλΉμ€μ μν₯μ΄ κ° μ μλ€. μ΄ μμμμλ λ§νλ―, μ΄μ μ§κΈ λ²νΌμ μ¬λλ€μ΄ λ§μ΄ λλ μ λ μ΄λ₯Ό μ²λ¦¬νλλΌ λ€λ₯Έ μ λ¬΄κ° λλ €μ§ μ μλ κ²μ΄λ€. κ²°κ΅ μ½μ΄λ± νΉ μλ²λ SPOF(Single Point of Failure)κ° λ μνμ΄ μμ£Ό λλ€.
κ²°κ΅ ν μ€λ μ΄ μ½μ΄λ± νΉ μλ²λ₯Ό λ 립μ μΈ λ§μ΄ν¬λ‘ μλ²λ‘ νλμ© λΆλ¦¬νκΈ° μμνλ€.
μ΄ μμμμ μ§μ€μ μΌλ‘ λ€λ£¬ λ§μ΄ν¬λ‘ μλ² μ¬λ‘λ μ΄μ μ§κΈ μλ²μ΄λ€. κΈ°μ‘΄μλ κ³ κ°μ μ 보λ₯Ό κ°μ Έμ€κ³ μν μ½κ΄ μ 보λ₯Ό κ°μ Έμ€κ³ μ΄μ κ³μ°, μΈκΈ κ³μ°, μ€μ κ³μ’λ‘ μ‘κΈνλ μ μ°¨λ₯Ό ν νΈλμμ λ΄μμ μ²λ¦¬νλ€. νμ§λ§ μ΄μ λ λ§μ΄ν¬λ‘ μλ² μν€ν μ²λ₯Ό λμ νκΈ° λλ¬Έμ μ΅λν λΆλ¦¬ν μ μλ μμ²μ λΆλ¦¬νμ¬ μλμ κ°μ ννκ° λμλ€.
νλμ μ½μ΄λ± νΉ μλ²μμ κ°λ¨νκ² μ²λ¦¬νλ νΈλμμ μ λ§μ΄ν¬λ‘ μλ²λ‘ λλλ€λ³΄λ λμμ± μ μ΄λ₯Ό μ κ²½μ¨μ£Όμ΄μΌ νκ² λμλ€.
λ§μ½ νΈλμμ 1κ³Ό νΈλμμ 2κ° λμμ μμ‘μ μ‘°ννμκ³ κ°κ° μλ‘μ΄ κΈμ‘μ κ³μ°ν΄ κ°±μ νλ€λ©΄ λμ°Έμ¬κ° λ°μν μ μλ€.
ν μ€μμλ JPAμ @Lock μ΄λ Έν μ΄μ μ μ΄μ©ν΄ μ΄λ₯Ό ν΄κ²°νλ€. μ΄ λ λ½μ μ‘μμΌ νλ λ°μ΄ν°λ§ λͺ νν 골λΌλ΄μ΄ λ½μ μ»μ μ μλλ‘ ν΄μΌ λ°λλ½μ΄λ μ±λ₯ μ νλ₯Ό λ§μ μ μλ€. μ΄μ μ§κΈ μλ²μμ λ½μ μ‘μμΌλ§ νλ μ€μν λ°μ΄ν°λ κ³μ’ λ¨μμ νμ¬ μμ‘ λ°μ΄ν°μ΄λ―λ‘, μ΄λ₯Ό μ‘°ννλ λ©μλμ λν΄ @Lock μ΄λ Έν μ΄μ μ λΆμμ κ²μΌλ‘ μΆμΈ‘ν μ μλ€. λ½μ μ»κΈ° μν΄ κΈ°λ€λ¦¬λ timeoutμ μ€μ νκ³ , μ¬μλ λ‘μ§λ μμ±ν΄μ£Όμ΄μΌ νλ€.
DB μ°κΈ° μ§μ°μΌλ‘ μΈν΄ μ€μκ°μΌλ‘ λ¬Έμ κ° λ°μνμ§ μλ μΌμ΄μ€λ€μ νν΄ Kafka λ©μμ§ νλ₯Ό ν΅ν΄ λΉλκΈ°λ‘ μ²λ¦¬λλλ‘ νμλ€. λ§μ½ Kafka λ©μμ§κ° μ μμ μΌλ‘ μ²λ¦¬λμ§ μμλ€λ©΄ Dead Letter Queue Topicμ λ΄μλκ³ μ¬μλλ₯Ό μννλ€. μ΄ λ μ¬μλλ‘ μΈν΄ μ€λ³΅ μ λ°μ΄νΈκ° λμ§ μλλ‘ λ©±λ±μ±μ ν보νλ κ²λ μ€μνλ€.
μ΄λ κ² μλ‘κ² κ°λ°λ λ§μ΄ν¬λ‘ μλ²λ μΆ©λΆν λ¨μ ν μ€νΈ, ν΅ν© ν μ€νΈ, μ€ν μ΄μ§ νκ²½ μ ν μ€νΈ λ±λ± κ°μ’ ν μ€νΈμ μλ¬λ¦° νμ μΌλΆ νΈλν½λΆν° μ μ§μ μΌλ‘ μ μ©λλ€.
λ§λ¬΄λ¦¬
λ°μ μ μλ μ΄μ κΈμ‘μ μΊμ±νκΈ° μν΄ Redisλ₯Ό μ¬μ©ν μ¬λ‘λ μμλλ°, μμλ λ°μ΄ν°κ° μ¬λΌμ Έλ ν¬κ² λ¬Έμ κ° μλ λ°μ΄ν°λ§μ μ μ₯νλλ‘ νλ κ²μ λ³Ό μ μμλ€.
λ λμ μλΉμ€λ₯Ό μν΄ μλ‘μ΄ μν€ν μ²λ₯Ό μμ μ μΌλ‘ λμ νλ κ²μ μ λ§ λ©μ§ κ² κ°λ€. μ¬λ¬ μν€ν μ²μ κΈ°μ λ€μ 곡λΆνλ©° λ ν¨μ¨μ μΌλ‘ ꡬννλ λ₯λ ₯μ ν€μμΌκ² λ€.
'μ‘λ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
2024 νκ³ & 2025 λͺ©ν (1) | 2025.01.01 |
---|---|
2023 μΈνμ½ νκΈ° (2) | 2023.08.16 |
2022 νκ³ (0) | 2023.01.05 |
velogμμ ν°μ€ν λ¦¬λ‘ λμ΄μ¨ μ΄μ (0) | 2022.04.04 |
λκΈ