목록2022/06/17 (3)
devops

[C813] 마이크로서비스를 구성할 때, 데이터베이스를 꼭 분리해야 하나요? 데이터가 한 곳에 모여있지 않고 중복되어도 괜찮은가요? 모범 사례를 알아보고, 이유를 함께 적어주세요. 서비스별로 데이터베이스를 사용시 이점 (microservices.io) 서비스가 더욱 느슨하게 결합되는 데 도움이 된다. 한 서비스의 데이터베이스를 변경해도 다른 서비스에는 영향을 미치지 않는다. 각 서비스는 필요에 가장 적합한 데이터베이스 유형을 사용할 수 있다. 예를 들어 텍스트 검색을 수행하는 서비스는 ElasticSearch를 사용할 수 있습니다. 소셜 그래프를 조작하는 서비스는 Neo4j를 사용할 수 있다. 서비스별로 데이터베이스를 사용시 단점 여러 서비스에 걸친 비즈니스 트랜잭션을 구현하는 것은 간단하지 않다. 분산..

REST(Representational State Transfer) REST는 HTTP로 소통하는 프로세스 간 통신 규약이다. REST API는 웹에서 사용되는 데이터나 자원을 HTTP URI로 표현하고 HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식이다. 현대 HTTP 메시지의 body는 JSON 형태로 다루는 것이 기본이다. (이 때 HTTP 헤더의 Content-Type 값은 application/json으로 설정) REST의 장점 curl 등의 도구로 간편하게 테스트 가능 요청/응답 통신 지원 시스템 아키텍처가 단순 REST의 단점 요청/응답만 지원 메시지를 주고받기 위해서 클라이언트와 서버가 실행되어야 함 요청 한번에 여러 리소스 조회는 어려움 메소로만으론 한번의 요청에 다양한 작업들을 하..

마이크로서비스도 하나의 프로세스 단위로 실행되기 때문에, 프로세스 통신이라고 보는게 맞다. IPC(Inter-Process-Communication)은 개발 도메인보다 더 대중적으로 쓰이는 용어다. 프로세스 간 통신 서비스와 서비스가 통신하려면 인터페이스가 존재해야하고, 인터페이스가 요구하는 데로 커뮤니케이션해야한다. 동기/비동기 HTTP 프로토콜은 기본적으로 TCP 연결(혹은 UDP)을 만들고 이 위에서 요청에 따라 즉시 응답오는 형태로 구현이 되어 있다. 세상에는 요청에 따른 응답이 즉시 도착하는 커뮤니케이션만 존재하지 않는다. + HTTP는 동기? 비동기? HTTP는 동기적인 매커니즘으로 분류한다. 서로 통신하는 PC는 모두 켜져 있어야하며, 클라이언트는 서버가 응답을 해줄 것이라고 기대하기 때문이..