欢迎光临散文网 会员登陆 & 注册

马哥云原生微服务治理大厂冲刺班名师亲授

2023-06-05 19:44 作者:戰億殇  | 我要投稿

服务注册和发现

基于SpringCloud实现

以 Spring Cloud 的 Eureka 为例,服务提供者会把自己的服务名和 IP注册到 Eureka。服务消费者调用服务提供者时,先通过服务名在 Eureka 找到对应的服务提供者的一组访问 IP,利用 Ribbon 的负载均衡策略,选择一个合适的 IP,去访问对应的微服务,属于客户端实现的负载均衡。

基于K8S实现

K8S 则是定义了 service 的概念,是一组 pod 的集合,在创建 service 时,会根据标签选择器(label selector)选择合适的 pod,并记录为 endpoint 对象,endpoint 中记录的是 service 和 pod 之间的关系。

每个 Node 节点运行了kube-proxy 来监控 pod,当 pod 的 IP 地址发生变化时,kube-proxy 会去更新对应的 endpoint,此外 service 的服务名字也会被注册到 coreDNS 服务,这样服务之间通过 service 的名字就可以互相访问了。

当服务消费者(pod A)访问服务提供者(pod B)的时候,根据kube-proxy 不同模式下的负载均衡策略(比如 iptables),来决定将请求转发到哪个 pod 


马哥云原生微服务治理大厂冲刺班名师亲授的评论 (共 条)

分享到微博请遵守国家法律