안녕하세요 간간히 도움을 받아가던 백갤러입니다!
주기적으로 질문드리고 싶어서 고정닉으로 인사드립니다.
앞으로 잘 부탁드립니다.
-----------------------------------------------------
프로젝트 계획
현재 MSA에 대해 공부하고자 프로젝트를 진행하고 있습니다.
JAVA, Spring Boot, MySQL을 사용해 진행하고 있고 부가적으로 Spring Cloud, RabbitMQ, Spring Data JPA를 사용하고 있습니다.
공부를 목적으로 하기에
1차 목표는
서비스 레포 나누기 (디비는 공유) -> 디비까지 나누기 -> 공유할 데이터 따로 모아 공유디비 추가
2차 목표는
천개 트래픽 -> 만개 트래픽 -> 십만개 트래픽 -> 백만개 트래픽
으로 계획했습니다.
1~500 단위는 쿼리 조회로도 견딜 수 있을거라고 생각했습니다.
그래서 현재 기능별 서버나누기 + 천개 트래픽 을 목표로 프로젝트를 진행하고 있습니다.
-----------------------------------------------------
질문.
1. MSA 학습을 위한 프로젝트 계획에서 더 좋은 방법이 있다면 조언 부탁드립니다.
2. 서비스의 독립성과 유연성을 높여주고, MSA의 핵심 원칙을 지키기 위해
각 서비스에 해당하는 엔티티는 각 서비스 레포에서만 담당하도록 하려고 생각했습니다.
이때, 다대일 맵핑과 같은 처리를 DTO로 처리하면 바람직한 처리인지 궁금합니다.
트랜잭션, 모니터링도 챙겨야할거고 멍청구리 트래픽보다는 카오스몽키 같은거 써서 체크하는게 좋음
게이트웨이 서비스메시 인증 기타등등 신경쓸게 너무 많다
테스트는 어떻게 할건지? 특정 서비스 변경하면 어떻게 무결함을 보증
서비스간 통신은 뭘로 할거야?
네 우선 트랜잭션은 염두해두고 있었고 인증/인가를 위해서 Spring Cloud 게이트웨이를 생각하고 있었습니다. 모니터링 관련 부분은 후순위로 두려고 했는데 우선순위를 앞으로 둬야하는 걸까요? 카오스몽키... 알아보겠습니다. 감사합니다 대기님
모니터링은 msa에서 굉장히 중요함 그게 안되면 고삐풀린 망아지에 불과하다
서비스간 통신은 rest 형식으로 1. 게이트웨이에서 jwt 토큰으로 인증/인가처리가 되면 토큰 까서 안에 있는 유저식별정보를 헤더로, Client에서 보낸 Body데이터는 그대로 Json으로 서비스쪽으로 보내려고 생각했습니다.
모니터링... 이부분은 공부하고 또 질문하러 오겠습니다..
근데 너 질문하는거 보니 msa 만질 수준이 아니다 경험은 좋으니까 해보든지
그래도 재미있게 공부하고 싶어서 한번 진행해보려고 합니다! :) 부족한 부분이 많은 것은 알았는데 키워드 많이 알려주셔서 감사합니다.
내가 알려준건 빙산의 일각임.. 아마 넌 시간만 졸라게 쓰고 msa가 되고싶은 누더기 괴물 만들거다 질문부터 핵심에서 완전히 벗어나있음
음... 대기님 그럼 혹시 그래도 제가 최대한의 이득을 가져갈 수 있는 방법에 대해 조언해주실 수 있을까요?
msa 그만두고 그 안의 특정 부분만 공부해
말만 들어도 멋진 뭔가를 만들 생각 자체를 하지마
말만들어도 멋지다 - dc App
MSA 프로젝트를 완성하기위해 어거지로 끼워맞추는 학습을 지양하고, 하나하나 진득하게 학습하라는 의미로 생각하면 될까요? 게이트웨이를 예로들면, 게이트웨이가 뭔지, 왜 사용하는지, 어떤 열할들을 수행하는지, 어떤 종류들이 있는지 등 에 대한 것을 위주로 학습해서 지식을 쌓는 것을 우선순위로 생각하면 될까요?
ㅇㅇ 굳이 msa안해도 게이트웨이 가치있게 쓸 수 있잖아 카프카 래빗엠큐 기타등등 다 마찬가지임 학습은 그런식으로 하는게 아니야, 한번에 너무 많은게 쏟아져들어오면 오히려 역효과임 성장 못하면 다행이지, 이상한 지식이나 버릇 쌓이면 개노답
후.... 조언 감사합니다. 종종 질문하러 오겠습니다. 앞으로도 잘부탁드립니다! :)
msa 진심 못 건들겠던데
내가 보기엔 독학으로하면 게이트웨이 설정하다 엎어짐
분산된 트랜잭션은 어떻게 관리하게요