Eureka中怎么续约服务接口

网友投稿 218 2024-02-02


Eureka中怎么续约服务接口

本文主要介绍"Eureka中如何续约服务接口",希望能够解决您遇到有关问题,下面我们一起来看这篇 "Eureka中如何续约服务接口" 文章。

Eureka续约服务接口比较简单,跟注册接口一样,在DiscoveryClient类

DiscoveryClient.java

boolean renew() {     EurekaHttpResponse<InstanceInfo> httpResponse;     try {         //调用更新心跳时间接口         httpResponse = eurekaTransport.registrationClient.sendHeartBeat(instanceInfo.getAppName(), instanceInfo.getId(), instanceInfo, null);         logger.debug(PREFIX + "{} - Heartbeat status: {}", appPathIdentifier, httpResponse.getStatusCode());         //如果返回是404,则就是服务被剔除,需要重新注册         if (httpResponse.getStatusCode() == Status.NOT_FOUND.getStatusCode()) {             REREGISTER_COUNTER.increment();             logger.info(PREFIX + "{} - Re-registering apps/{}", appPathIdentifier, instanceInfo.getAppName());             long timestamp = instanceInfo.setIsDirtyWithTime();             boolean success = register();             if (success) {                 instanceInfo.unsetIsDirty(timestamp);             }             return success;         }         return httpResponse.getStatusCode() == Status.OK.getStatusCode();     } catch (Throwable e) {         logger.error(PREFIX + "{} - was unable to send heartbeat!", appPathIdentifier, e);         return false;     } }

JerseyReplicationClient.java这块继承AbstractJerseyEurekaHttpClient,代码差不多,主要流程没什么区别,这里给出AbstractJerseyEurekaHttpClient的逻辑,其实就是调用服务端接口

@Override public EurekaHttpResponse<InstanceInfo> sendHeartBeat(String appName, String id, InstanceInfo info, InstanceStatus overriddenStatus) {     String urlPath = "apps/" + appName + / + id;     ClientResponse response = null;     try {         WebResource webResource = jerseyClient.resource(serviceUrl)                 .path(urlPath)                 .queryParam("status", info.getStatus().toString())                 .queryParam("lastDirtyTimestamp", info.getLastDirtyTimestamp().toString());         if (overriddenStatus != null) {             webResource = webResource.queryParam("overriddenstatus", overriddenStatus.name());         }         Builder requestBuilder = webResource.getRequestBuilder();         addExtraHeaders(requestBuilder);         response = requestBuilder.put(ClientResponse.class);         EurekaHttpResponseBuilder<InstanceInfo> eurekaResponseBuilder = anEurekaHttpResponse(response.getStatus(), InstanceInfo.class).headers(headersOf(response));         if (response.hasEntity() &&                 !HTML.equals(response.getType().getSubtype())) { //dont try and deserialize random html errors from the server             eurekaResponseBuilder.entity(response.getEntity(InstanceInfo.class));         }         return eurekaResponseBuilder.build();     } finally {         if (logger.isDebugEnabled()) {             logger.debug("Jersey HTTP PUT {}/{}; statusCode={}", serviceUrl, urlPath, response == null ? "N/A" : response.getStatus());         }         if (response != null) {             response.close();         }     } }

编程技术 和 程序设计

怎样解析Kafka基本原理:本文主要介绍"如何解析Kafka基本原理",希望能够解决您遇到有关问题,下面我们一起来看这篇 "如何解析Kafka基本原理" 文章。简介Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn ...


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java怎么实现接口的继承和多继承
下一篇:提高效率,全面了解接口管理测试平台
相关文章

 发表评论

暂时没有评论,来抢沙发吧~