1. 程式人生 > >Eureka 原始碼解析 —— 應用例項註冊發現(一)之註冊

Eureka 原始碼解析 —— 應用例項註冊發現(一)之註冊

// DiscoveryClient.javaboolean register() throws Throwable {   logger.info(PREFIX + appPathIdentifier + ": registering service...");   EurekaHttpResponse<Void> httpResponse;   try {       httpResponse = eurekaTransport.registrationClient.register(instanceInfo);   } catch (Exception e) {       logger.warn("{} - registration failed {}"
, PREFIX + appPathIdentifier, e.getMessage(), e); throw e; } if (logger.isInfoEnabled()) { logger.info("{} - registration status: {}", PREFIX + appPathIdentifier, httpResponse.getStatusCode()); } return httpResponse.getStatusCode() == 204;}// AbstractJerseyEurekaHttpClient.java@Override
public EurekaHttpResponse<Void> register(InstanceInfo info) { String urlPath = "apps/" + info.getAppName(); ClientResponse response = null; try { Builder resourceBuilder = jerseyClient.resource(serviceUrl).path(urlPath).getRequestBuilder(); addExtraHeaders(resourceBuilder); response = resourceBuilder .header("Accept-Encoding"
, "gzip") .type(MediaType.APPLICATION_JSON_TYPE) .accept(MediaType.APPLICATION_JSON) .post(ClientResponse.class, info); return anEurekaHttpResponse(response.getStatus()).headers(headersOf(response)).build(); } finally { if (logger.isDebugEnabled()) { logger.debug("Jersey HTTP POST {}/{} with instance {}; statusCode={}", serviceUrl, urlPath, info.getId(), response == null ? "N/A" : response.getStatus()); } if (response != null) { response.close(); } }}