服务(资源)发现(二)——注册中心和资源持有者的实现
在上一篇文章中我们已经实现了服务发现中负载均衡部分问题的处理,在解决了负载均衡后,我们开始考虑服务发现的具体实现过程。
上一篇文章对服务发现框架的分析中我们已经对注册中心的核心功能做了一个分析,下面是具体的实现过程:
首先我们将注册中心的几个功能放到一个接口中:
该接口定义了注册中心的注册、注销、得到服务器地址的方法。
在写接口之前我们需要考虑,如何定义资源?
由上一篇对资源的分析和定义,我们有下面的代码:
// An highlighted block
public class ResourceInfo {
private String app;
private String id;
private String version;
public ResourceInfo() {
}
public ResourceInfo(String app, String id, String version) {
this.app = app;
this.id = id;
this.version = version;
}
public String getApp() {
return app;
}
public void setApp(String app) {
this.app = app;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((app == null) ? 0 : app.hashCode());
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((version == null) ? 0 : version.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ResourceInfo other = (ResourceInfo