面试题答案
一键面试- Consul
- 工作原理:Consul采用客户端 - 服务器架构。客户端负责转发请求到服务器节点,服务器节点之间通过gossip协议进行成员关系管理和状态同步。服务提供者启动时向Consul注册自身服务信息,包括IP、端口等。服务消费者通过向Consul查询获取服务实例列表,基于Consul提供的健康检查机制,能筛选出健康的服务实例,进而实现负载均衡调用。
- Etcd
- 工作原理:Etcd基于Raft一致性算法保证数据强一致性。服务提供者将自身服务信息以键值对形式存储到Etcd中。服务消费者从Etcd读取相关服务实例的键值对数据获取服务列表。同时,Etcd支持Watch机制,当服务实例有变动时,能及时通知服务消费者,以便其更新服务实例列表,实现负载均衡与服务发现。
- Kubernetes(kube - proxy)
- 工作原理:Kubernetes中的kube - proxy运行在每个节点上,负责实现服务的负载均衡和网络代理。它通过监听Kubernetes API Server中服务和端点的变化。当有新服务创建或现有服务更新时,kube - proxy根据服务的类型(如ClusterIP、NodePort等)采用不同的负载均衡策略。例如,对于ClusterIP类型服务,kube - proxy通过iptables规则或者ipvs规则,将发往服务ClusterIP和端口的流量转发到后端Pod上,实现负载均衡。