/******************************************************************************* * Copyright 2017 ZTE, Inc. and others. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. ******************************************************************************/ package org.onap.msb.sdk.discovery.entity; import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @JsonIgnoreProperties(ignoreUnknown = true) public class Node implements Serializable { private static final long serialVersionUID = 1L; private String ip; private String port; private String ttl = ""; // 负载均衡策略参数 private String lb_server_params = ""; // 健康检查参数 private String checkType = ""; private String checkUrl = ""; private String checkInterval = ""; private String checkTimeOut = ""; private String ha_role = ""; public String getHa_role() { return ha_role; } /** * @Title setHa_role * @Description TODO(实例主备状态,取值范围:active,standby) * @param ha_role * @return void */ public void setHa_role(String ha_role) { this.ha_role = ha_role; } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } public String getPort() { return port; } public void setPort(String port) { this.port = port; } public String getTtl() { return ttl; } public void setTtl(String ttl) { this.ttl = ttl; } @Override public String toString() { // TODO Auto-generated method stub return (new StringBuilder().append(ip).append(":").append(port).append(" ttl:").append(ttl)) .toString(); } public String getLb_server_params() { return lb_server_params; } /** * @Title setLb_server_params * @Description TODO(针对协议为TCP或UDP的服务实例配置负载均衡参数)
* 支持的server参数设置:
* 1. weight: server的权重,不显式设置默认为1
* 2. * max_fails:在fail_timeout设置的时间间隔内,允许失败尝试的次数,不显式设置默认为1.比如fail_timeout=30s,max_fails=6,那表示在30s内如果6次连接失败,那认定该server为unavailable *
* 3. fail_timeout:判定server为unavailable的时间间隔。如果不显式设置,默认设置为10s * @param lb_server_params (示例:weight=5,max_fails=3,fail_timeout=30s) * @return void */ public void setLb_server_params(String lb_server_params) { this.lb_server_params = lb_server_params; } public String getCheckType() { return checkType; } /** * @Title setCheckType * @Description TODO(健康检查类型,可选范围:TTL,HTTP,TCP)
* 1.HTTP保活由"MSB"每隔checkInterval时间向"服务提供方"发送 GET请求。如果请求返回任何2xx状态码,检测成功。
* 2.TCP保活原理同HTTP,协议不同。
* 3.TTL保活由"服务提供方"向"MSB"发送HTTP请求以保持联通状态,在checkInterval设置的时间间隔内未能收到保活请求,服务发现将此服务状态设置为无效。 * @param checkType * @return void */ public void setCheckType(String checkType) { this.checkType = checkType; } public String getCheckUrl() { return checkUrl; } /** * @Title setCheckUrl * @Description TODO(健康检查类型为HTTP或TCP,填写检查URL) * @param checkUrl * @return void */ public void setCheckUrl(String checkUrl) { this.checkUrl = checkUrl; } public String getCheckInterval() { return checkInterval; } /** * @Title setCheckInterval * @Description TODO(健康检查轮询时间,单位:秒) * @param checkInterval * @return void */ public void setCheckInterval(String checkInterval) { this.checkInterval = checkInterval; } public String getCheckTimeOut() { return checkTimeOut; } public void setCheckTimeOut(String checkTimeOut) { this.checkTimeOut = checkTimeOut; } }