服务治理
注册中心
服务把自己的信息注册中注册中心,客户端中只需要配置注册中心的IP
地址和端口,从而查询到远程服务的IP
和 端口,客户端通过注册中心来调度服务器端
同时服务发现也有两种流程:
- 客户端发现: 客户端从注册中心获取到服务器段的地址信息列表,并且在服务器端自己的内部实现负载均衡
- 基于注册中心发现: 客户端不需要自己实现服务发现以及负载均衡的功能,只需要知道注册中心的地址即可
服务注册中心机制有很多种比如: zookeeper
(最稳定) , etcd
(go-zero
底层,采用了客户端发现的机制,重点是去中心化) , consul
(提供UI
界面,基于中心的服务发现)
go-zero 中服务注册的实现原理
#TODO go-zero
中的服务注册实现原理和 grpc
中的服务发现机制补充
go-zero中的服务负载均衡
首先明确什么是负载均衡,分为两个角度研究:
- 对于客户端而言: 负载均衡就是从服务发现的列表中找出一个合适的服务来进行调度
- 对于服务器端而言: 负载均衡就是在较大流量访问的过程中通过负载均衡机制把流量均匀分配到每一个服务器上
- 负载均衡的实现方式分为有状态和没有状态两种,实现方式比如哈希,轮询,随机,权重等