개발실

Redis를 Service Discovery 로 활용.

copycd 2022. 2. 27. 21:22
반응형

응용프로그램을 마이크로 서비스로 구성하려고 하는데, 골치거리중에 하나가 변경되는 port 였다.

나의 경우는,

로컬에서만 사용하므로, 보안도 필요없고, LB도 필요없음.

 

이를 해결하기 위해서 여러가지 솔루션을 알아 보는데, 

모두들 거창하고 다양한 프로토콜을 지원하지 않는경우도 있어서, 

내가 적용한 심플한 솔루션을 공유하고자 한다.

 

서비스들간에 정보 공유를 위해서 이미 redis를 사용하고 있었는데,

  • 해당 redis port를 서비스 실행시 넘겨준다.

사전에, 서비스들에 대해서 유일한 명명이 정의되어 있고 서로 공유되어야 함.

 

  • 그리고, 서비스들은 초기화시 의무적으로 redis에 자신에게 명명된 이름에 port 항목을 기록하게 하면된다.

단, 기록할때 변수에 유효시간을 설정할 수 있는데, 해당 시간을 15초로 설정하고 ( 내가 기록하는 간격 시간보다 길게 )

해당 변수는 10초주기로 계속 기록하게 하면됨.

 

해당 서비스가 필요한 놈들은 사전에 명명된 서비스 이름으로 조회를 할수 있고, 해당 서비스의

host url이나 port를 조회해서 현재 서비스되고 있는 주소를 파악할 수 있다.

기타 다른 부가 정보들도 추가해서 tcp, grpc, http 등 통신 규약도 알아 낼수 있다.

 

 

반응형