마이크로서비스 아키텍처에서 각 서비스가 통신하는 방법

조회수 549회

안녕하세요 마이크로 서비스 아키텍처에 공부중인 학생입니다.

마이크로 서비스는 서비스에 따라 컨테이너를 분류해서 사용한다고 알고있습니다.

해당 https://github.com/GoogleCloudPlatform/microservices-demo

깃허브에서는 각각의 서비스를 여러가지 언어로 사용했는데 이 서비스가 각각 다른 컨테이너 안에 들어있는 거잖아요?

근데 이 컨테이너가 어떻게 서로 통신하는 건가요?? 여기선 gRPC를 이용한다고 되어있는데 잘 와닿지가 않습니다.

기존의 모놀리식 서버의 경우 단순히 db를 연결해 주는 것만으로 사용자가 특정 값을 입력하면 자동으로 db에 저장되게 할 수 있는데 마이크로 서비스 아키텍처의 경우 따지고 보면 컨테이너 마다 다 나뉘어져 있는건데 어떻게 서로 데이터를 주고 받을 수 있는거죠??

제발 답변 부탁드립니다. 읽어주셔서 감사합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • api 를 제공하고 호출하면 되는 겁니다.

    RPC 는 RemoteProcedureCall 약자입니다. g는 구글에서 개발했기에 붙였을 것이구요.

    gRPC 는 여러 통신방법중 하나일 뿐 통신 솔루션은 여러가지가 있습니다.

    핵심은 서버끼리 통신인데 gRPC 라면 원격지의 함수를 호출할 수 있다는 의미 입니다.

    과거에는 corba 를 많이 사용했었고 ms에서 열심히 밀던 soap 이나 자바쪽의 rmi, ejb 도 원격지의 서비스를 호출하자는 것 입니다.

    그럼 데이터를 어떻게 교환하는가? 웹브라우져를 생각해보세요.

    http://~~~/query=abcd 라고 보내면 query 파라미터로 abcd 라는 값을 보낼 수 있지요? 그리곤 html 을 건네 받잖아요.

    단순하게 생각해봅시다.

    xml 로 함수명과 파라미터 타입과 값을 적고 그 xml 을 서버로 전송하면 서버에서는 xml을 보고 해당 함수를 수행할 수 있습니다. 함수명이나 파라미터 타입, 값이 있으므로 당연히 가능할겁니다. 그리고 함수를 수행한 뒤 결과값을 xml을 리턴합니다. 어때요? 이렇게 하면 서로 교환할 수 있겠지요? 이런 방식이 xmlrpc 방식입니다.

    RPC 는 여러 솔루션이 있고 각각의 방식을 사용하지만 목적은 같습니다. 원격지의 함수나 서비스를 요청하고 응답받는 겁니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)