πŸ’»
Albert's Til
GitHub
  • 맀일맀일 μ‘°κΈˆμ”© μ„±μž₯ν•˜κΈ°
    • README
    • CS
      • Network
      • HTTP
        • NO-CACHE
      • 였λ₯˜ μ½”λ“œ
      • ORM 도ꡬ
      • Design Pattern
        • CQRS Pattern
          • Event Sourcing and CQRS pattern
        • Builder Pattern
    • DB
      • MySQL
        • Timeline
        • Pagination
        • Index
        • Database Performance Optimization Strategies
        • B+ tree
        • MySQL Connectors VS MySQL Shell(Scripting) VS MySQL Workbench
        • MySQL Storage Engine Architecture
      • Normalization & Denormalization
      • JPA
        • @Transactional
        • Why JPA?
        • About JPA
        • N+1 Issue
        • Index
        • ElementCollection&CollectionTable
        • orphanRemoval
        • CascadeType
        • Use Subselect
        • Dynamic Instance Creation
        • Paging
        • Order
        • Spefication
        • mappedBy
      • MongoDB
        • ObjectId
      • Why MySQL?
      • ACID properties of transactions
      • Between JPA and JDBC
      • Identifiers in Hibernate/JPA
    • Java
      • Jackson de/serialize
      • Collections.singletonList() vs List.of()
      • Manage dependencies in Gradle
      • Logging Level
      • Bean Validation
      • JVM Internals
        • Threads
          • Frame
        • Shared Between Threads
          • Classloader
            • Class Loader Hierarchy
            • Loading Linking Initialization
      • Java Collection Framework
      • Annotation
      • Generic
      • λ””λ―Έν„° 법칙
    • Spring
      • Caching
      • Spring Integration Overview
        • ThreadPollTaskExecutor
        • Messaging Bridge
        • Channel Adapter
        • Poller
        • Configuration and @EnableIntegration
        • Message Endpoints
        • Message Channels
      • HATEOAS
      • @Autowired vs Constructor Dependency Injection
      • Spring Security
        • JWT 토큰 μ‚¬μš©ν•œ 인가
        • OAuth 2 Login
        • OAuth 2 인증
        • 인가
        • 인증
        • PasswordEncoder
      • IoC Container
      • Filter,Interceptor,AOP,Argument Resolver
      • Spring Annotation
      • About Spring
    • Kafka
      • Error Channel
    • Infra
      • Scale Up || Scale Out
      • Docker
        • Dockerfile
        • Docker Hub Deploy
        • Command
      • Cloud μœ ν˜•
        • Infrastructure as a Service
        • Platform as a Service
        • Software as a Service
      • 무쀑단 배포
        • μ—”μ§„μ—‘μŠ€(Nginx)
      • μ½”λ“œ μžλ™ 배포
        • Technical
      • AWS EC2
        • PEM(Privacy Enhanced Mail) ν‚€
      • AWS RDS
      • AWS S3
    • CodeSquad
      • Spring Boot Project 1μ£Όμ°¨ 회고
      • Spring Boot Project 2μ£Όμ°¨ 회고
      • Spirng Boot Project 3μ£Όμ°¨ 회고
      • Spring Boot Project 4μ£Όμ°¨ 회고
    • Foody Moody ν”„λ‘œμ νŠΈ
      • Query Performance Comparison
      • HeartCount Asynchronous Issue
      • DeferredResult
      • ResponseBodyEmitter
      • SseEmitter (Spring)
      • Server-Sent Events (SSE)
      • 기술 μŠ€νƒ 적용 이유
      • NO-CACHE(HTTP)
      • Transactional
    • DDD
      • AggregateId
    • Test
      • RestAssured
    • Coding and Algorithmic Problems
      • 819. Most Common Word
      • 344. Reverse String
      • 125. Valid Palindrome
      • 937. Reorder Data in Log Files
    • Node
      • Async... Await...
      • Custom Transactional Decorator Challenger
    • Python
      • Python Basic Grammar
        • Comments and Input/Output
        • Variable
        • Data type
        • Operations and syntax
        • List,Tuple,Dictionary,Set
        • Function
        • Conditional statement
        • Loop
    • HTML
      • HTML Basic
      • HTML Basic Tags
      • HTML Form Tags
      • HTML Table Tags
    • CSS
      • CSS Basic
      • CSS Practice
Powered by GitBook
On this page
  • Fan Out on Read (Pull Model)
  • μž‘λ™ 방식
  • μž₯점
  • 단점
  • Fan Out On Write (Push Model)
  • μž‘λ™ 방식
  • μž₯점
  • 단점
  • κ²°λ‘ 
  • Fan Out on Read
  • Fan Out on Write

Was this helpful?

  1. 맀일맀일 μ‘°κΈˆμ”© μ„±μž₯ν•˜κΈ°
  2. DB
  3. MySQL

Timeline

μ†Œμ…œ λ―Έλ””μ–΄ ν”Œλž«νΌμ΄λ‚˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ‚¬μš©μžμ˜ ν™œλ™μ΄λ‚˜ κ²Œμ‹œλ¬Όμ„ μ‹œκ°„ μˆœμ„œλŒ€λ‘œ ν‘œμ‹œν•˜λŠ” κΈ°λŠ₯

Fan Out on Read (Pull Model)

μž‘λ™ 방식

  • μ‚¬μš©μžκ°€ νƒ€μž„λΌμΈμ„ μš”μ²­ν•  λ•Œλ§ˆλ‹€ (예: ν™ˆνŽ˜μ΄μ§€ 접속) μ„œλ²„λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ κ΄€λ ¨κ²Œμ‹œλ¬Όμ„ κ²€μƒ‰ν•˜μ—¬ νƒ€μž„λΌμΈμ„ κ΅¬μ„±ν•œλ‹€.

μž₯점

λ°μ΄ν„°μ˜ μ΅œμ‹ μ„±

  • μƒμš©μžκ°€ νƒ€μž„λΌμΈμ„ μš”μ²­ν•  λ•Œλ§ˆλ‹€ μ΅œμ‹  데이터λ₯Ό μ œκ³΅ν•œλ‹€.

μ“°κΈ° νš¨μœ¨μ„±

  • κ²Œμ‹œλ¬Όμ„ μΆ”κ°€ν•  λ•Œ λ‹€λ₯Έ μ‚¬μš©μžμ˜ νƒ€μž„λΌμΈμ— λ°”λ‘œ λ°˜μ˜ν•  ν•„μš”κ°€ 없이 μ“°κΈ° μž‘μ—…μ΄ κ°„λ‹¨ν•˜λ‹€.

단점

읽기 λΆ€ν•˜

  • λ§Žμ€ μ‚¬μš©μžκ°€ λ™μ‹œμ— νƒ€μž„λΌμΈμ„ μš”μ²­ν•˜λ©΄, μ„œλ²„μ™€ λ°μ΄ν„°λ² μ΄μŠ€μ— 큰 λΆ€ν•˜κ°€ λ°œμƒν•œλ‹€.

ν™•μž‘μ„± 문제

  • μ‚¬μš©μž μˆ˜κ°€ 많이질수둝 μ„±λŠ₯ μ €ν•˜μ˜ μœ„ν—˜μ΄ 컀진닀.

Fan Out On Write (Push Model)

μž‘λ™ 방식

  • κ²Œμ‹œλ¬Όμ΄ μž‘μ„±λ  λ•Œ, ν•΄λ‹Ή κ²Œμ‹œλ¬Όμ€ 각 κ΄€λ ¨ μ‚¬μš©μžμ˜ νƒ€μž„λΌμΈμ— λ°”λ‘œ μΆ”κ°€λœλ‹€. μ΄λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ— κ²Œμ‹œλ¬Όμ„ μ €μž₯ν•˜λŠ” λ™μ‹œμ— 이루어진닀.

μž₯점

읽기 νš¨μœ¨μ„±

  • μ‚¬μš©μžκ°€ νƒ€μž„λΌμΈμ„ μš”μ²­ν•˜λ©΄ 이미 μ€€λΉ„λœ 데이트λ₯Ό λ°”λ‘œ μ œκ³΅ν•  수 μžˆμ–΄ 읽기 뢀담이 쀄어든닀.

ν™•μž₯μ„±

  • μ‚¬μš©μžμ˜ μˆ˜κ°€ 증가해도 읽기 μ„±λŠ₯에 λ―ΈμΉ˜λŠ” 영ν–₯이 적닀.

단점

μ“°κΈ° λΆ€ν•˜

  • κ²Œμ‹œλ¬Όμ„ μΆ”κ°€ν•  λ•Œλ§ˆλ‹€ λ‹€μˆ˜μ˜ μ‚¬μš©μž νƒ€μž„λΌμΈμ„ κ°±μ‹ ν•΄μ•Ό ν•˜λ―€λ‘œ μ“°κΈ° μž‘μ—…μ— 뢀담이 λœλ‹€.

데이터 μ΅œμ‹ μ„± 문제

  • μΊμ‹œ λ¬΄νš¨ν™”λ‚˜ 데이터 동기화 이슈둜 인해 μ΅œμ‹  데이터 λ°˜μ˜μ— 지연이 λ°œμƒ ν•  수 μžˆλ‹€.

κ²°λ‘ 

Fan Out on Read

  • μ‹€μ‹œκ°„ μ—…λ°μ΄νŠΈκ°€ μ€‘μš”ν•˜μ§€ μ•Šκ³ , μ‚¬μš©μž μˆ˜κ°€ 적은 κ²½μš°μ— μ ν•©ν•˜λ‹€.

Fan Out on Write

  • λŒ€κ·œλͺ¨ μ‚¬μš©μžλ₯Ό λŒ€μƒμœΌλ‘œ ν•˜λŠ” μ„œλΉ„μŠ€λ‚˜, 읽기 μ„±λŠ₯이 μ€‘μš”ν•œ κ²½μš°μ— μœ λ¦¬ν•˜λ‹€.

Last updated 1 year ago

Was this helpful?