각각의 마이크로서비스가 응집성이 있어야 한다. : 함께 변화하는 로직이 같은 마이크로서비스 범위내에 있을 경우, 각 마이크로서비스는 독립적으로 운영할 수 있게 된다.
응집성 : 서로 강하게 연결되어 있고 변경되는 요소가 있으면 함께 변경되어야 한다는 것을 의미한다.
모든 마이크로서비스는 한 가지에 대한 일을 해야한다.(단일 책임 원칙)
- 새로운 기능이 어디에 위치해야 하며, 어떤 팀이 그것을 관리해야 하는지에 대한 애매함이 없어지게 된다.
- 모든 용어, 개체, 식별자가 특정한 문맥에 바인딩 되므로 각 마이크로서비스에 대한 매우 명확하고 쉽게 따를 수 있는 API를 생성하는데 도움이 된다.
- 예를 들어 User 마이크로서비스가 있을 때, 여기에서 id는 유저 id이고, 이름은 유저의 이름이 될 것이 분명해진다.
마이크로서비스들은 느슨하게 결합되어야 한다.
- 느슨하게 결합된 마이크로서비스들은 상호연관성이 매우 적거나 전혀 가지고 있지 않다.
- 이는 각각의 마이크로서비스가 다른 마이크로서비스와 최소한의 통신만을 통해 고유한 기능을 수행할 수 있다는 것을 의미한다.
Tip) 마이크로서비스의 크기는 중요하지 않으며 가능한 작아야 한다는 것은 흔히 있는 오해이다. 위의 3가지 원칙을 지키기만 하면 마이크로서비스의 크기는 상관없다.
'Spring Boot > MSA' 카테고리의 다른 글
마이크로서비스로의 전환 (feat. 도메인 주도 설계) (0) | 2024.09.25 |
---|---|
데이터베이스 in MSA (0) | 2024.09.24 |
eureka client 설정 in docker-compose (0) | 2024.09.22 |
분산 추적 도구 - zipkin (0) | 2024.09.17 |
Spring Boot MSA OpenFeign (0) | 2024.07.20 |