上一篇文章《手把手教你写rpc框架系列(三)注册中心的选型》我们对于注册中心进行了选型,最后我们选择了zookeeper。对于rpc框架来说,如果我们想要客户端调用我们的服务,那么我们的服务提供者首先做的第一件事就是把服务注册到注册中心去,因此在注册中心里面,我们需要把自身的元数据信息给存储到注册中心去。这样子其他服务就能知道我们的服务信息。
所以这里我们首先需要做的就是分析自身服务有哪些元数据信息需要对外提供的,这里我简单的整理了3个,分别是:
1、服务名称 2、服务的地址端口 3、服务支持的协议
当然可能还有其他的元数据信息,但是在这里我们的元数据信息对于我们这个简单的rpc框架来说已经够用了,因此这里我们拟订一个zookeeper的数据结构,完整的数据结构代码如下:
package org.wz.rpc.framework; import java.io.Serializable; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.ToString; /** * 这个实体类是各个服务提供者注册到注册中心之后,需要暴露自己的信息 * */ @Data @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode @ToString @Builder public class ZookeeperMetadataData implements Serializable { /** * */ private static final long serialVersionUID = -4692255735509810643L; /** * 服务名称 */ private String name; /** * 服务协议 */ private String protocol; /** * 服务地址,格式:IP:Port */ private String address; }
整这个数据结构之后,我们注册自身服务之后,我们存储的数据信息如下:
这里的话,我们新创建一个项目为:wz-rpc。然后在下面创建一个wz-rpc-framework的module项目,项目完整结构如下:
最后按照惯例,附上本案例的源码,登录后即可下载。
还没有评论,来说两句吧...