-
2024.05.07 Sharing Data Between MicroservicesTIL 2024. 5. 7. 23:35
Sharing Data Between Microservices
https://medium.com/@denhox/sharing-data-between-microservices-fe7fb9471208
MSA 아키텍처에서 서비스 간 중복 데이터 저장은 흔히 있는 일이다.
각 서비스는 데이터 이벤트를 발행해 주거나 API를 제공해 줘서 타 서비스가 자원을 활용할 수 있도록 한다.
모든 데이터를 가져갈 필요가 없거나 단순 조회의 경우는 API를 통해서 조회해도 무방하다.
다만 API연동은 확장성이 떨어진다. 장애도 전염될 수 있고 성능에도 영향을 미칠 수 있다.
내가 해결법을 생각했다면 이벤트로 중복 데이터를 저장해서 관리했을 텐데..
이것은 어떻게 보면 실시간 동기화를 의미한다.
여기서도 데이터를 중복으로 저장하되 cache를 언급한다. 실시간 동기화를 하지 않겠다는 것이다.
이벤트를 받지 않고 특정 시점마다 DB를 업데이트하는 것 같다.
매번 API call 또는 이벤트 수신을 통해 데이터 동기화를 하지 않는 것은 사용자에게 완벽한 동기화를 제공해주지 않는다.
하지만 성능상 이점과 장애전염을 어느 정도 막을 수 있다.
근데 pub/sub구조면 그냥 leaderboard service도 이벤트를 수신하면 되지 않을까?
댓글에서는 오히려 MSA가 아닌 모놀리식으로 개발하는 것을 나쁘게 보면 안된다고 말하는 글이 많다.
'TIL' 카테고리의 다른 글
2024.05.09 gradle cache (0) 2024.05.09 2024.05.08 build server down, Share Data Between MSA (0) 2024.05.08 2024.05.06 Galera Crash Recovery (0) 2024.05.06 2024.05.05 Galera IST (0) 2024.05.05 2024.05.04 Galeral Physical State Snapshot, Understanding the bug (0) 2024.05.04