더북(TheBook)

HTTP 게이트웨이가 마이크로서비스들과 통신하려고 Client 클래스를 참조합니다(). HTTP 게이트웨이를 Distributor에 등록하는 패킷을 구성합니다(). 이때 임의의 이름인 gate로 설정했습니다.

Distributor 접속용 Client 클래스의 인스턴스를 생성합니다(). Distributor와 HTTP 게이트웨이는 물리적으로 다른 장비에서 실행하는 것이 좋지만, 개발 편의상 로컬에서 Distributor, HTTP 게이트웨이, 마이크로서비스 모두 실행하도록 하겠습니다.

Distributor에 접속하면 isConnectedDistributortrue로 설정하고에서 만들어 놓은 패킷을 전달합니다(). Distributor에서 정보가 전달되면 onDistribute 함수에서 처리하도록 하고(), 접속을 종료하거나 에러가 발생하면 isConnectedDistributorfalse로 변경합니다(, ).

HTTP 게이트웨이를 Distributor보다 먼저 실행하거나 Distributor가 실행을 중단하면 재접속 기능을 추가합니다. 3초 간격으로 isConnectedDistributor 값이 false이면 Distributor로 접속을 시도합니다().

onDistribute로 Distributor에서 현재 접속 가능한 마이크로서비스 목록이 전달되면() 접속하지 않은 마이크로서비스에 대해 Client 클래스 인스턴스를 생성합니다. 접속 주소로 key를 만들어 mapClients에 인스턴스를 저장하고(), 처리 가능한 URL들을 mapUrls에 저장합니다().

마이크로서비스가 장애 등으로 접속을 종료하면, 에서 등록한 정보를 삭제합니다().

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.