private String visualRange = "1";
@ApiModelProperty(value = "[LB Policy]non_ip_hash:0,ip_hash:1", allowableValues = "0,1", example = "0")
- private String useOwnUpstream="0"; //负载均衡策略
+ private String useOwnUpstream="0";
@ApiModelProperty(required = true)
private RouteServer servers[];
private String visualRange = "1";
@ApiModelProperty(value = "[LB Policy]non_ip_hash:0,ip_hash:1", allowableValues = "0,1", example = "0")
- private String useOwnUpstream="0"; //负载均衡策略
+ private String useOwnUpstream="0";
@ApiModelProperty(required = true)
private RouteServer servers[];
private String visualRange = "1";
@ApiModelProperty(value = "[LB Policy]non_ip_hash:0,ip_hash:1", allowableValues = "0,1", example = "0")
- private String useOwnUpstream="0"; //负载均衡策略
+ private String useOwnUpstream="0";
@ApiModelProperty(required = true)
private RouteServer servers[];
@JsonIgnoreProperties(ignoreUnknown = true)
public class Service<T> implements Serializable {
private static final long serialVersionUID = 1L;
- // 服务名
+
@ApiModelProperty(required = true)
private String serviceName;
- // 版本号
+
@ApiModelProperty(example = "v1")
private String version="";
- // 服务url
+
@ApiModelProperty(value = "Target Service URL,start with /",example = "/api/serviceName/v1", required = true)
private String url="";
- // 服务对应协议,比如REST、UI、MQ、FTP、SNMP、TCP、UDP
+
@ApiModelProperty(value = "Service Protocol", allowableValues = "REST,UI, MQ, FTP,SNMP,TCP,UDP", example = "REST",required = true)
private String protocol = "";
- //服务的可见范围 系统间:0 系统内:1
+
@ApiModelProperty(value = "[visual Range]interSystem:0,inSystem:1", allowableValues = "0,1", example = "1")
private String visualRange = "1";
- //负载均衡策略类型
+
@ApiModelProperty(value = "lb policy", allowableValues = "round-robin,hash,least_conn", example = "hash")
private String lb_policy="";
import redis.clients.jedis.Jedis;
-
-/**
- * @ClassName: ApiRouteServiceWrapper
- * @Description: TODO(ApiRoute服务类)
- * @author tanghua10186366
- * @date 2015年9月25日 上午9:44:04
- *
- */
public class ApiRouteServiceWrapper {
private static final Logger LOGGER = LoggerFactory.getLogger(ApiRouteServiceWrapper.class);
return instance;
}
- /**
- * @Title: getAllApiRouteInstances
- * @Description: TODO(获取全部服务列表)
- * @param: @return
- * @return: ApiRouteInfoBean[]
- */
+
public ApiRouteInfo[] getAllApiRouteInstances() {
"fetch from jedis pool failed,null object!");
}
- // 获取全部服务列表
+
String routekey =
RouteUtil
.getPrefixedKey("", RouteUtil.APIROUTE, "*", RouteUtil.ROUTE_PATH_INFO);
return false;
}
- /**
- * @Title: getApiRouteInstance
- * @Description: TODO(通过服务名+版本号获取单个服务对象信息)
- * @param: @param serviceName
- * @param: @param version
- * @param: @return
- * @return: ApiRouteInfo
- */
+
public ApiRouteInfo getApiRouteInstance(String serviceName, String version) {
if (StringUtils.isBlank(serviceName)) {
ApiRouteInfo apiRouteInfo = null;
- // 获取info信息
+
String routekey =
RouteUtil.getPrefixedKey("", RouteUtil.APIROUTE, serviceName, version,
RouteUtil.ROUTE_PATH_INFO);
apiRouteInfo.setUseOwnUpstream(infomap.get("useOwnUpstream"));
- // 获取负载均衡信息
+
String serviceLBkey =
RouteUtil.getPrefixedKey("", RouteUtil.APIROUTE, serviceName, version,
RouteUtil.ROUTE_PATH_LOADBALANCE);
apiRouteInfo.setServers(apiRouteServerList);
- // 获取生命周期信息
-
-// ApiRouteLifeCycle lifeCycle = new ApiRouteLifeCycle();
-// String serviceLifekey =
-// RouteUtil.getPrefixedKey("", RouteUtil.APIROUTE, serviceName, version,
-// RouteUtil.APIROUTE_PATH_LIFE);
-// Map<String, String> serviceLifeMap = jedis.hgetAll(serviceLifekey);
-//
-// lifeCycle.setInstallPath(serviceLifeMap.get("path"));
-// lifeCycle.setStartScript(serviceLifeMap.get("start"));
-// lifeCycle.setStopScript(serviceLifeMap.get("stop"));
-//
-// apiRouteInfo.setLifeCycle(lifeCycle);
+
}
return apiRouteInfo;
}
- /**
- * @Title: updateApiRouteInstance
- * @Description: TODO(更新单个服务信息)
- * @param: @param serviceName
- * @param: @param version
- * @param: @param apiRouteInfo
- * @param: @return
- * @return: ApiRouteInfo
- */
+
public synchronized ApiRouteInfo updateApiRouteInstance(String serviceName, String version,
ApiRouteInfo apiRouteInfo, String serverPort) {
if (serviceName.equals(apiRouteInfo.getServiceName())
&& version.equals(apiRouteInfo.getVersion())) {
- // 删除已存在负载均衡服务器信息
+
deleteApiRoute(serviceName, version, RouteUtil.ROUTE_PATH_LOADBALANCE + "*",
serverPort);
} else {
- // 如果已修改服务名或者版本号,先删除此服务全部已有信息
+
deleteApiRoute(serviceName, version, "*", serverPort);
}
}
- /**
- * @Title updateApiRouteStatus
- * @Description TODO(更新单个服务状态)
- * @param serviceName
- * @param version
- * @param status
- * @return
- * @return RouteResult
- */
+
public synchronized ApiRouteInfo updateApiRouteStatus(String serviceName, String version,
String status) {
ApiRouteInfo new_apiRouteInfo = getApiRouteInstance(serviceName, version);
- // 准备info信息
+
String serviceInfokey =
RouteUtil.getPrefixedKey("", RouteUtil.APIROUTE, serviceName, version,
RouteUtil.ROUTE_PATH_INFO);
if (jedis == null) {
throw new Exception("fetch from jedis pool failed,null object!");
}
- // 保存info信息
+
jedis.hmset(serviceInfokey, serviceInfoMap);
new_apiRouteInfo.setStatus(status);
}
- /**
- * @Title: saveApiRouteInstance
- * @Description: TODO(存储单个服务信息)
- * @param: @param apiRouteInfo
- * @param: @return
- * @return: ApiRouteInfo
- */
+
public synchronized ApiRouteInfo saveApiRouteInstance(ApiRouteInfo apiRouteInfo,
String serverPort) {
+ RouteUtil.show(RouteUtil.useOwnUpstreamRangeMatches) + ")");
}
- // 检查服务实例格式
+
RouteServer[] serverList = apiRouteInfo.getServers();
for (int i = 0; i < serverList.length; i++) {
RouteServer server = serverList[i];
}
}
- // 准备info信息
+
String serviceInfokey =
RouteUtil.getPrefixedKey(serverPort, RouteUtil.APIROUTE,
apiRouteInfo.getServiceName().trim(), apiRouteInfo.getVersion().trim(),
serviceInfoMap.put("visualRange", apiRouteInfo.getVisualRange());
serviceInfoMap.put("useOwnUpstream", apiRouteInfo.getUseOwnUpstream());
- // 准备负载均衡信息
+
String serviceLBkey =
RouteUtil.getPrefixedKey(serverPort, RouteUtil.APIROUTE,
apiRouteInfo.getServiceName(), apiRouteInfo.getVersion(),
throw new ExtendedInternalServerErrorException(
"fetch from jedis pool failed,null object!");
}
- // 保存info信息
jedis.hmset(serviceInfokey, serviceInfoMap);
- // 保存负载均衡信息
+
for (int i = 0; i < serverList.length; i++) {
Map<String, String> servermap = new HashMap<String, String>();
RouteServer server = serverList[i];
jedis.hmset(serviceLBkey + ":server" + (i + 1), servermap);
}
- // 保存生命周期信息
-
-// ApiRouteLifeCycle lifeCycle = apiRouteInfo.getLifeCycle();
-// if (lifeCycle != null) {
-// String serviceLifekey =
-// RouteUtil.getPrefixedKey(serverPort, RouteUtil.APIROUTE,
-// apiRouteInfo.getServiceName(), apiRouteInfo.getVersion(),
-// RouteUtil.APIROUTE_PATH_LIFE);
-// Map<String, String> serviceLifeMap = new HashMap<String, String>();
-// serviceLifeMap.put("path", lifeCycle.getInstallPath());
-// serviceLifeMap.put("start", lifeCycle.getStartScript());
-// serviceLifeMap.put("stop", lifeCycle.getStopScript());
-// jedis.hmset(serviceLifekey, serviceLifeMap);
-// }
-
-
+
} catch (Exception e) {
LOGGER.error("call redis throw exception", e);
- /**
- * @Title: deleteApiRoute
- * @Description: TODO(删除单个服务信息)
- * @param: @param type
- * @param: @param serviceName
- * @param: @param version
- * @param: @param delKey
- * @param: @return
- * @return: void
- */
+
public synchronized void deleteApiRoute(String serviceName, String version, String delKey,
String serverPort) {
"fetch from jedis pool failed,null object!");
}
- // 获取info信息
+
String routekey =
RouteUtil.getPrefixedKey(serverPort, RouteUtil.APIROUTE, serviceName, version,
delKey);
String[] paths = new String[infoSet.size()];
- // Set-->数组
+
infoSet.toArray(paths);
jedis.del(paths);
}
- /**
- * @Title: getAllApiDocs
- * @Description: TODO(获取本地ext\initSwaggerJson目录的全部json文件目录)
- * @param: @return
- * @return: String[]
- */
+
public String[] getAllApiDocs() {
URL apiDocsPath = ApiRouteServiceWrapper.class.getResource("/ext/initSwaggerJson");
if (apiDocsPath != null) {
return null;
}
- /**
- * 读取某个文件夹下的所有文件
- */
public String[] readfile(String filepath) throws FileNotFoundException, IOException {
File file = new File(filepath);
if (file.isDirectory()) {
}
- /**
- * @Title: getAllCustomRouteService
- * @Description: TODO(获取全部内容服务列表)
- * @param: @return
- * @return: CustomRouteInfo[]
- */
+
public CustomRouteInfo[] getAllCustomRouteInstances() {
"fetch from jedis pool failed,null object!");
}
- // 获取全部服务列表
String routekey =
RouteUtil.getPrefixedKey("", RouteUtil.CUSTOMROUTE, "*",
RouteUtil.ROUTE_PATH_INFO);
- /**
- * @Title: getCustomRouteInstance
- * @Description: TODO(通过服务名获取单个内容服务对象信息)
- * @param: @param serviceName
- * @param: @return
- * @return: CustomRouteInfo
- */
public CustomRouteInfo getCustomRouteInstance(String serviceName) {
if (StringUtils.isBlank(serviceName)) {
CustomRouteInfo customRouteInfo = null;
- // 获取info信息
String routekey =
RouteUtil.getPrefixedKey("", RouteUtil.CUSTOMROUTE, serviceName,
RouteUtil.ROUTE_PATH_INFO);
customRouteInfo.setUseOwnUpstream(infomap.get("useOwnUpstream"));
- // 获取负载均衡信息
String serviceLBkey =
RouteUtil.getPrefixedKey("", RouteUtil.CUSTOMROUTE, serviceName,
RouteUtil.ROUTE_PATH_LOADBALANCE);
return customRouteInfo;
}
- /**
- * @Title: updateCustomRouteInstance
- * @Description: TODO(更新单个服务信息)
- * @param: @param serviceName
- * @param: @param CustomRouteInfo
- * @param: @return
- * @return: CustomRouteInfo
- */
public synchronized CustomRouteInfo updateCustomRouteInstance(String serviceName,
CustomRouteInfo customRouteInfo, String serverPort) {
if (StringUtils.isBlank(serviceName)) {
try {
if (serviceName.equals(customRouteInfo.getServiceName())) {
- // 删除已存在负载均衡服务器信息
deleteCustomRoute(serviceName, RouteUtil.ROUTE_PATH_LOADBALANCE + "*", serverPort);
} else {
- // 如果已修改服务名,先删除此服务全部已有信息
deleteCustomRoute(serviceName, "*", serverPort);
}
}
- /**
- * @Title updateCustomRouteStatus
- * @Description TODO(更新单个服务状态)
- * @param serviceName
- * @param status
- * @return
- * @return RouteResult
- */
public synchronized CustomRouteInfo updateCustomRouteStatus(String serviceName, String status) {
if (StringUtils.isBlank(serviceName)) {
- // 准备info信息
String serviceInfokey =
RouteUtil.getPrefixedKey("", RouteUtil.CUSTOMROUTE, serviceName,
RouteUtil.ROUTE_PATH_INFO);
throw new ExtendedInternalServerErrorException(
"fetch from jedis pool failed,null object!");
}
- // 保存info信息
jedis.hmset(serviceInfokey, serviceInfoMap);
new_customRouteInfo.setStatus(status);
return new_customRouteInfo;
}
- /**
- * @Title: saveCustomRouteInstance
- * @Description: TODO(存储单个服务信息)
- * @param: @param CustomRouteInfo
- * @param: @return
- * @return: CustomRouteInfo
- */
public synchronized CustomRouteInfo saveCustomRouteInstance(CustomRouteInfo customRouteInfo,
String serverPort) {
+ RouteUtil.show(RouteUtil.useOwnUpstreamRangeMatches) + ")");
}
- // 检查服务实例格式
RouteServer[] serverList = customRouteInfo.getServers();
for (int i = 0; i < serverList.length; i++) {
RouteServer server = serverList[i];
}
- // 准备info信息
String serviceInfokey =
RouteUtil.getPrefixedKey(serverPort, RouteUtil.CUSTOMROUTE,
customRouteInfo.getServiceName().trim(), RouteUtil.ROUTE_PATH_INFO);
- // 准备负载均衡信息
String serviceLBkey =
RouteUtil.getPrefixedKey(serverPort, RouteUtil.CUSTOMROUTE,
customRouteInfo.getServiceName(), RouteUtil.ROUTE_PATH_LOADBALANCE);
throw new ExtendedInternalServerErrorException(
"fetch from jedis pool failed,null object!");
}
- // 保存info信息
jedis.hmset(serviceInfokey, serviceInfoMap);
- // 保存负载均衡信息
for (int i = 0; i < serverList.length; i++) {
Map<String, String> servermap = new HashMap<String, String>();
- /**
- * @Title: deleteCustomRoute
- * @Description: TODO(删除单个服务信息)
- * @param: @param type
- * @param: @param serviceName
- * @param: @param delKey
- * @param: @return
- * @return: void
- */
public synchronized void deleteCustomRoute(String serviceName, String delKey, String serverPort) {
if (StringUtils.isBlank(serviceName)) {
"fetch from jedis pool failed,null object!");
}
- // 获取info信息
String routekey =
RouteUtil
.getPrefixedKey(serverPort, RouteUtil.CUSTOMROUTE, serviceName, delKey);
String[] paths = new String[infoSet.size()];
- // Set-->数组
infoSet.toArray(paths);
jedis.del(paths);
return instance;
}
-
- /**
- * @Title: getAllIuiRouteService
- * @Description: TODO(获取全部内容服务列表)
- * @param: @return
- * @return: IuiRouteInfo[]
- */
public IuiRouteInfo[] getAllIuiRouteInstances() {
"fetch from jedis pool failed,null object!");
}
- // 获取全部服务列表
String routekey =
RouteUtil
.getPrefixedKey("", RouteUtil.IUIROUTE, "*", RouteUtil.ROUTE_PATH_INFO);
}
-
- /**
- * @Title: getIuiRouteInstance
- * @Description: TODO(通过服务名获取单个内容服务对象信息)
- * @param: @param serviceName
- * @param: @return
- * @return: IuiRouteInfo
- */
public IuiRouteInfo getIuiRouteInstance(String serviceName) {
if (StringUtils.isBlank(serviceName)) {
IuiRouteInfo iuiRouteInfo = null;
- // 获取info信息
String routekey =
RouteUtil.getPrefixedKey("", RouteUtil.IUIROUTE, serviceName,
RouteUtil.ROUTE_PATH_INFO);
iuiRouteInfo.setUseOwnUpstream(infomap.get("useOwnUpstream"));
- // 获取负载均衡信息
String serviceLBkey =
RouteUtil.getPrefixedKey("", RouteUtil.IUIROUTE, serviceName,
RouteUtil.ROUTE_PATH_LOADBALANCE);
return iuiRouteInfo;
}
- /**
- * @Title: updateIuiRouteInstance
- * @Description: TODO(更新单个服务信息)
- * @param: @param serviceName
- * @param: @param IuiRouteInfo
- * @param: @return
- * @return: IuiRouteInfo
- */
public synchronized IuiRouteInfo updateIuiRouteInstance(String serviceName,
IuiRouteInfo iuiRouteInfo) {
try {
if (serviceName.equals(iuiRouteInfo.getServiceName())) {
- // 删除已存在负载均衡服务器信息
deleteIuiRoute(serviceName, RouteUtil.ROUTE_PATH_LOADBALANCE + "*");
} else {
- // 如果已修改服务名,先删除此服务全部已有信息
deleteIuiRoute(serviceName, "*");
}
saveIuiRouteInstance(iuiRouteInfo);
}
- /**
- * @Title updateIuiRouteStatus
- * @Description TODO(更新单个服务状态)
- * @param serviceName
- * @param status
- * @return
- * @return RouteResult
- */
public synchronized IuiRouteInfo updateIuiRouteStatus(String serviceName, String status) {
IuiRouteInfo new_iuiRouteInfo = getIuiRouteInstance(serviceName);
- // 准备info信息
String serviceInfokey =
RouteUtil.getPrefixedKey("", RouteUtil.IUIROUTE, serviceName,
RouteUtil.ROUTE_PATH_INFO);
throw new ExtendedInternalServerErrorException(
"fetch from jedis pool failed,null object!");
}
- // 保存info信息
jedis.hmset(serviceInfokey, serviceInfoMap);
new_iuiRouteInfo.setStatus(status);
return new_iuiRouteInfo;
}
- /**
- * @Title: saveIuiRouteInstance
- * @Description: TODO(存储单个服务信息)
- * @param: @param IuiRouteInfo
- * @param: @return
- * @return: IuiRouteInfo
- */
public synchronized IuiRouteInfo saveIuiRouteInstance(IuiRouteInfo iuiRouteInfo) {
if (StringUtils.isBlank(iuiRouteInfo.getServiceName())
+ RouteUtil.show(RouteUtil.useOwnUpstreamRangeMatches) + ")");
}
- // 检查服务实例格式
RouteServer[] serverList = iuiRouteInfo.getServers();
for (int i = 0; i < serverList.length; i++) {
RouteServer server = serverList[i];
}
- // 准备info信息
String serviceInfokey =
RouteUtil.getPrefixedKey("", RouteUtil.IUIROUTE, iuiRouteInfo.getServiceName().trim(),
RouteUtil.ROUTE_PATH_INFO);
serviceInfoMap.put("useOwnUpstream", iuiRouteInfo.getUseOwnUpstream());
- // 准备负载均衡信息
String serviceLBkey =
RouteUtil.getPrefixedKey("", RouteUtil.IUIROUTE, iuiRouteInfo.getServiceName(),
RouteUtil.ROUTE_PATH_LOADBALANCE);
throw new ExtendedInternalServerErrorException(
"fetch from jedis pool failed,null object!");
}
- // 保存info信息
jedis.hmset(serviceInfokey, serviceInfoMap);
- // 保存负载均衡信息
for (int i = 0; i < serverList.length; i++) {
Map<String, String> servermap = new HashMap<String, String>();
RouteServer server = serverList[i];
- /**
- * @Title: deleteIuiRoute
- * @Description: TODO(删除单个服务信息)
- * @param: @param type
- * @param: @param serviceName
- * @param: @param delKey
- * @param: @return
- * @return: void
- */
public synchronized void deleteIuiRoute(String serviceName, String delKey) {
if (StringUtils.isBlank(serviceName)) {
"fetch from jedis pool failed,null object!");
}
- // 获取info信息
String routekey = RouteUtil.getPrefixedKey("", RouteUtil.IUIROUTE, serviceName, delKey);
Set<String> infoSet = jedis.keys(routekey);
String[] paths = new String[infoSet.size()];
- // Set-->数组
infoSet.toArray(paths);
jedis.del(paths);
public synchronized MicroServiceFullInfo saveMicroServiceInstance(
MicroServiceInfo microServiceInfo, boolean createOrUpdate,String requestIP,String serverPort) {
- // 保存数据格式判断
if (StringUtils.isBlank(microServiceInfo.getServiceName())
|| StringUtils.isBlank(microServiceInfo.getProtocol())
}
- // 设置连接池基本信息
+
String strHost = bundle.getString("redis.host");
if(StringUtils.isNotEmpty(strHost)){
host = strHost;