작성
·
295
0
안녕하세요 강사님!
현재 Users Microservice - JPA 부분을 들으면서 user등록까지 잘 해서 테이블에도 잘 나온 상태입니다.
저는 client -> api gateway -> 유레카 -> user서비스
이렇게 이해하고 있습니다.
그리고 현재 집에 같은 와이파이로 연결된 데스크탑으로
(api gateway 역할을 하고 있다고 이해해도 될지 모르겠지만) discovery service를 올려놓았고요.
노트북으로 user-service를 만들었습니다.
노트북 브라우저로 유레카를 접근하고자 할 때에는 데스크탑 아이피 주소를 입력해서 접근했습니다. 여기까지는 이해가 잘 되었습니다. 그리고 이제 user를 등록하기 위해 postman의 ip주소를 입력하려고 유레카에서 user-service의 포트를 확인하기 위해 클릭하니 노트북 주소와 랜덤 포트가 나오더라고요! 그리고 그 주소로 api를 요청하니 잘 되었습니다.
여기서 질문입니다.
모든 서비스는 api gateway를 거치는 것 아닌가요? 그렇다면 api gateway가 동작하고 있는 데스크탑 ip주소를 요청해야하는거 아닌가요?
추가질문으로 환경설정에서 0을 해서 포트가 랜덤으로 설정하게 하시는 이유가 궁금합니다!
자세하고 쉽게 설명해주시기 위해 강의 준비해주셔서 감사합니다:)
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
API Gateway는 클라이언트와 마이크로서비스 간의 통신을 담당하는 역할을 합니다. 클라이언트가 API Gateway에 요청을 보내면, API Gateway는 해당 요청을 받아서 적절한 마이크로서비스로 전달해주는 역할을 합니다. 따라서 클라이언트는 마이크로서비스의 IP 주소보다는 API Gateway의 IP 주소를 사용하여 통신하게 됩니다.
하지만, 유레카 서비스에서 확인할 때는 개별 마이크로서비스의 IP 주소와 포트를 확인하도록 되어 있습니다. 이는 개발 환경에서 테스트하기 위한 용도로, 각 서비스의 IP 주소와 포트를 확인하여 개별적으로 테스트할 수 있도록 도와주는 역할을 합니다.
마이크로서비스 아키텍처에서는 각각의 서비스가 독립적으로 동작하기 때문에, API Gateway를 사용하지 않고 각각의 서비스에 직접 요청을 보낼 수도 있습니다. 따라서 개발자가 원하는 방식으로 구성하실 수 있습니다.
마이크로서비스의 포트 설정에 대해서는 일반적으로 0을 설정하면 운영체제에서 랜덤으로 포트를 할당해줍니다. 이렇게 하면 여러 서비스가 동일한 포트를 사용하더라도 충돌 없이 여러 서비스를 테스트하거나 실행할 수 있습니다.
이해가 도움이 되셨길 바라며, 더 궁금한 점이 있으면 언제든지 물어보세요~!