ServerInfo:
ID string 服务ID
IP string 对外连接服务的 IP
Port string 宿主机(服务器),对外服务端口,本机或者端口映射后得到的
ContainerPort string 容器暴露端口对外服务端口,本机或者端口映射后得到的
Host string 服务副本部署在的服务器HostName
Address string 服务地址 host:端口
ServiceName string 服务名称
DockerImage:
ID string 镜像唯一性ID
FullName string 镜像完整名称,包含前缀以及版本号
Env map[string]string 镜像启动所使用环境变量
Node string 指定所在服务器节点的HostName
CreateTime time.Time 镜像创建时间
NodeImage:
ImageInfoKey string 镜像详细记录,保存在etcd中的key值,保存在此处,作为未来更新ImageInfo记录使用
FullName string 镜像全名
Env map[string]string 使用的环境变量,例如:IP,Port,ContainerPort,Host,Etcd,ServiceName
Node string 指定服务器节点HostName
ContainerID string 容器ID
ServConfigs:
ServiceName string 服务名
Replica int 服务副本个数,依据具体情况而定
Meta Meta 服务详细数据信息
Meta:
Port string 服务器端口
ContainerPort string 容器端口
NeedNetPublic bool 服务是否需要公网
ImagePrefix string 服务镜像前缀
Etcd string Etcd注册中心的地址
NodeConfig:
HostName string 服务器节点的HostName
HasPublic bool 服务器是否有公有IP
PrivateIP string 服务器节点私有IP
PublicIP string 服务器节点公有IP
MaxContainers int 服务器节点最大容器数量
服务注册:
service-"ServiceName"-"xID"
ServiceName: 当前服务名称
xID: 标志唯一性的ID
服务销毁,停止,删除信号:
RM-"Host"-"xID"
Host: 当前服务器节点的HostName
xID: 标志唯一性的ID
PS: 词条信息使用完之后,Etcd会立即删除
Keeper正常运行信息:
running-keeper-"HostName"
HostName: 当前服务器节点的HostName
keeper所在服务器当前启动/管理的正常运行的服务:
keeper-"HostName"-image
HostName: 当前服务器节点的HostName
keeper关于当前服务副本启动的反馈信息,滚动升级专用:
rolling-update-"ServiceName"
ServiceName: 服务的名称
center保存,整理好的镜像信息:
docker-image-"xID"
xID: 标志唯一性的ID
对外提供两个方法:
BuildService() 自动生成服务端所必须的路由规则,封装入bind方法中,使用时调用bind方法,进行绑定.
- 所需要的参数:
- serviceInstance interface{} 指定接口,参数格式:服务接口为UserServer 那么给定的参数格式应该为:(*UserServer)(nil)
- structName实现接口结构体名称
- structVar实现接口结构体的变量名
- 生成文件所在路径:eg: . 表示当前文件夹路径
BuildClient() 自动生成服务间通信所需要的被调用服务的client端,生成之后,只需要调用client端内的方法,即可完成服务间通信。
- 所需要的参数:
- serviceInterface interface{}指定接口,参数格式:服务接口为UserServer 那么给定的参数格式应该为:(*UserServer)(nil)
- clientVar client端结构体变量名
- serviceName服务对外暴露时使用的服务名
- filePath string 生成文件所在路径:eg:. 表示当前文件夹路径