학원에서 배운건
하나의 언어와 하나의 프레임워크, 하나의 db 등으로 웹사이트 만들고
그걸 배포(는 안해봄)하는건데
이게 모놀리틱이고
msa는
각 기능을 쪼개서
예를들어 회원가입과 그 회원 관련된 api를 이 기능과 적합한 db를 써서 만들어서 배포하고
검색 엔진을 그것과 적합한 db를 써서 만들어서 배포하고
이 각각 배포한 api를 서로 조합해서
굴리는게 msa방식이야?
학원에서 배운건
하나의 언어와 하나의 프레임워크, 하나의 db 등으로 웹사이트 만들고
그걸 배포(는 안해봄)하는건데
이게 모놀리틱이고
msa는
각 기능을 쪼개서
예를들어 회원가입과 그 회원 관련된 api를 이 기능과 적합한 db를 써서 만들어서 배포하고
검색 엔진을 그것과 적합한 db를 써서 만들어서 배포하고
이 각각 배포한 api를 서로 조합해서
굴리는게 msa방식이야?
맞음
그럼 각 기능을 구현할때 무조건 다 똑같은 프레임워크를 쓰는건 아니지? 각 다른 언어와 프레임워크를 써서 만들었어도 호환이 돼?
응 서로 API나 이벤트 메시지로 통신을 하니까
아하 그렇구나.. 오.. 신기하다. 독립성..ㄳㄳ
http api도 있고, grpc, graphql, kafka, rabbitmq 같은 것도 있어
그 api간의 통신을 위해 사용하는 것들이야?
마이크로서비스들이 통신하는 수단
ㅇㅎ 요즘 간간히 보이는 graphql이랑 kafka라는게 그런거였구나 그리고 곰곰히 생각해보다가 궁금한게 하나 더 생겼는데 만약 A와 B API가 있는데 만약 B API에서 A API에서 쓰는 DB 데이터와 기능이 필요하면 어떻게 해야돼? B에서 A api에 연결된 DB와 연결해서 새로 다시 구현을 해야해? 아니면 A api에서 보통 기능까지 쓸 수 있게 기능 구현을 해놔?
db 공유는 안티패턴임 db는 서비스의 영속성을 제공하기 위한 private한 부분임. 서비스가 여러 db를 가질 수는 있어도 여러 서비스가 db를 공유하면 안 됨 그런 상황에서는 api로 통신하거나 데이터 변경 시 kafka로 이벤트를 알려주는 식으로 하지
아아아~~ ㄳㄳㄳ 이해된 거 같아 "db 공유는 안티패턴이다"이런 개념은 어떻게 공부했어? db 공부하다보면 자연스럽게 알게되나 이래서 cs지식이 중요하다 하는건가
cs랑은 다른 얘기지 msa 찾아보면 많이 나오는 얘기기도 하고 지금 팀에서 하는 게 안티패턴식 msa라서 ㅈ같음을 몸소 체험 중임
그렇군 계속 공부하면서 해도 괜찮은 방법과 효율적인 방법을 찾아가야겠구나. 고마워 덕분에 많이 배운거 같아
간간히->간간이 곰곰히->곰곰이