eureka 클라이언트 서버 상호작용
Eureka Server 상호 작용의 첫 번째 단계는 Eureka 클라이언트를 초기화하는 것입니다.AWS Cloud에서 실행 중인 경우 다음과 같이 초기화할 수 있습니다.
버전 1.1.153부터 Eureka Module 클래스를 도입하여 관리자/guice가 있는 eureka-client를 사용할 수 있도록 합니다.이 통제된 예시를 참조하십시오.1.1.153 버전 이전에는 다음과 같이 Eureka Server를 초기화할 수 있습니다.
DiscoveryManager.getInstance().initComponent(
new CloudInstanceConfig(),
new DefaultEurekaClientConfig());
다른 데이터 센터에서 실행 중인 경우 다음 방법으로 초기화할 수 있습니다.
DiscoveryManager.getInstance().initComponent(
new MyDataCenterInstanceConfig(),
new DefaultEurekaClientConfig());
Eureka 클라이언트가 eureka-client를 찾습니다.properties, 이렇게 서술합니다.
About Instance Statuses
기본적으로 Eureka 클라이언트는 STARTING 상태에서 시작하여 응용 프로그램의 특정한 초기화를 할 기회가 있고 데이터에 서비스를 제공할 수 있습니다.
그리고 응용 프로그램은 실례 상태를 UP으로 바꾸어 데이터에 대한 실례를 명확하게 설정할 수 있다.
ApplicationInfoManager.getInstance().setInstanceStatus(InstanceStatus.UP)
인스턴스 상태가 DOWN으로 변경되면 응용 프로그램에서 건강검진 콜백을 실행하도록 등록할 수도 있습니다.
넷플릭스에서도 OUT_OF_SERVICE 상태는 주로 데이터에 대한 서비스를 중지하는 데 사용됩니다.문제가 발생했을 때 새 버전을 쉽게 롤백하여 배치하는 데 사용됩니다.대부분의 응용 프로그램은 새 버전의 ASG를 만들고 데이터는 새 ASG로 라우팅됩니다.문제가 발생한 경우 롤백 개정은 ASG의 모든 인스턴스를 OUT_로 설정하기만 하면 됩니다.OF_Service를 사용하여 트래픽을 종료합니다.
Eureka Client Operations
Eureka 클라이언트는 먼저 AWS 클라우드와 같은 구역에 있는 Eureka Server와 모든 작업을 시도하고 서버를 찾지 못하면 다른 구역으로 실효(fail over)를 이동합니다.
응용 프로그램 클라이언트는 Eureka 클라이언트가 되돌아오는 정보를 사용하여 부하 균형을 잡을 수 있다.다음은 Eureka 클라이언트가 반환하는 정보를 사용하여 클라이언트의 부하 균형을 맞추는 응용 프로그램의 예입니다.
InstanceInfo nextServerInfo = DiscoveryManager.getInstance()
.getDiscoveryClient()
.getNextServerFromEureka(vipAddress, false);
Socket s = new Socket();
int serverPort = nextServerInfo.getPort();
try {
s.connect(new InetSocketAddress(nextServerInfo.getHostName(),
serverPort));
} catch (IOException e) {
System.err.println("Could not connect to the server :"
+ nextServerInfo.getHostName() + " at port " + serverPort);
}
만약 기본적인 폴링 부하 균형이 당신의 요구를 충족시키지 못한다면, 부하 균형기를 여기에 제공된 API/operations 위에 포장할 수 있습니다.AWS 클라우드에서 다시 시도하는 데 실패하고 낮은 시간 초과를 유지하십시오. 왜냐하면 Eureka 서버가 중단된 상황에서 존재하지 않는 실례를 되돌릴 수 있기 때문입니다.
주의해야 할 것은 유레카 클라이언트가 서버 통신을 위해 만든 30초 이상 비어 있는 HTTP 연결을 지울 것이다.이는 AWS 방화벽이 유휴 시간 몇 분 후에 연결할 수 있도록 제한하기 때문입니다.
Eureka 클라이언트는 다음과 같은 방식으로 서버와 상호작용합니다.
Register
Eureka 클라이언트는 실행 중인 실례에 대한 정보를 Eureka 서버에 등록합니다.AWS 클라우드에서 URL 액세스 가능http://169.254.169.254/latest/metadata실례에 대한 정보를 얻다.등록은 첫 번째 심장 박동(30초 후)에 발생합니다.
Renew
Eureka 고객은 임대차 계약을 갱신하기 위해 30초에 한 번씩 심장박동을 보내야 한다.갱신 알림 유레카 서버에 이 실례가 여전히 존재합니다.서버가 이 정보를 사용하여 클라이언트와 서버의 통신에 광범위한 문제가 있는지 확인하기 때문에 갱신 간격을 변경하지 않는 것을 권장합니다.
Fetch Registry
Eureka 클라이언트는 서버에서 레지스트리 정보를 가져와 로컬에서 캐시합니다.이후 클라이언트는 이 정보를 사용하여 다른 서비스를 찾습니다.최근 주기와 현재 주기 사이의 증분 업데이트를 가져오면 정기적으로 (30초마다) 이 정보를 업데이트합니다.증분 정보는 서버에서 약 3분 동안 유지되기 때문에 증분 추출은 같은 실례를 다시 되돌릴 수 있습니다.Eureka 클라이언트는 자동으로 중복 정보를 처리합니다.
증량을 얻은 후, Eureka 클라이언트는 서버가 되돌아오는 실례 계수를 비교하여 서버와의 정보를 조율하고, 어떤 원인으로 인해 정보가 일치하지 않으면 전체 등록표 정보를 다시 얻는다.Eureka 서버 캐시 증가분의 압축 유효 부하 - 전체 등록표와 모든 응용 프로그램과 같은 압축되지 않은 정보.또한 유효 로드는 JSON/XML 형식을 지원합니다.Eureka 클라이언트는 jersey apache 클라이언트를 사용하여 압축된 JSON 형식으로 정보를 얻습니다.
Cancel
Eureka 클라이언트가 꺼질 때 Eureka 서버에 취소 요청을 보냅니다.이것은 서버의 실례 등록표에서 실례를 삭제하여 실례가 더 이상 데이터로 작동하지 않도록 합니다.
이것은 Eureka 클라이언트가 닫힐 때 완성되며, 프로그램은 닫는 동안 다음 내용을 호출해야 합니다.
DiscoveryManager.getInstance().shutdownComponent()
Time Lag(대기 시간)
Eureka 클라이언트에서 온 모든 작업은 Eureka 서버와 그 후의 다른 Eureka 클라이언트에 비치는 데 시간이 좀 걸릴 수 있습니다.이것은 eureka 서버의 유효 부하 캐시가 정기적으로 갱신되어 새로운 정보를 비추기 때문이다.Eureka 고객은 정기적으로 증량을 받는다.따라서 업데이트 정보가 모든 Eureka 클라이언트에게 전달되는 데 2분이 걸릴 수 있습니다.
Communication mechanism(인터랙티브 메커니즘)
기본적으로 Eureka 클라이언트는 Jersey와 Jackson, JSON의 유효 부하를 사용하여 Eureka Server와 통신합니다.기본 메커니즘을 덮어쓰면 선택한 메커니즘을 사용할 수 있습니다.일부 유류 용례에 대해 XStream도 의존 관계도의 일부분이라는 것을 주의하십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.