微服务中的客户端发现与服务端发现

本贴最后更新于 2018 天前,其中的信息可能已经时移俗易

在微服务应用中,服务的发现有两种形式:

  • 客户端发现
  • 服务端发现

客户端发现

image.png
这里的注册中心其实就相当于青楼的老鸨,A 是嫖客,B 是小姐。这样一比喻相信各位老司机都知道三者之间的交互逻辑了。
客户端发现就是当 A 需要调用 B 服务时,请求注册中心(B 服务在启动时会将信息注册到注册中心),注册中心将一份完整的可用服务列表返回给 A 服务,A 服务自行决定使用哪个 B 服务。

特点

  • 简单直接,不需要代理的介入
  • 客户端(A)知道所有实际可用的服务地址
  • 客户端(A)需要自己实现负载均衡逻辑

使用客户端发现的例子

  • Eureka

服务端发现

image.png
服务端发现相对于客户端发现,多了一个代理,代理帮 A 从众多的 B 中挑选一个 B。

特点

  • 由于代理的介入,服务(B)与注册中心,对 A 是不可见的

使用服务端发现的例子

  • Nginx
  • ZooKeeper
  • Kubernetes
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...