gydtep 发表于 2020-10-28 07:57:04
所以服务发现 Eureka、断路器 Hystrix、网关 Zuul 与负载均衡 Ribbon 非常流行直至今日,再加上 Netflix 成功的使用这些技术构建了一个庞大的分布式系统,这些成功经验使得 Spring Cloud 一度是微服务的代表。gydtep 发表于 2020-10-28 10:01:37
虽然使用 Java annotation 的方式方便使用,但是必须是 Java 语言而且需要一大堆 SDK,很多例如负载均衡的能力无法做到进程之外。gydtep 发表于 2020-10-28 13:47:30
相对于服务发现,其他 Consul 所提供的功能就显得不那么诱人了,比如 Key-Value 数据库以及多数据中心支持,当然我认为这也不是核心内容。gydtep 发表于 2020-10-28 14:01:54
政治因素,虽然是开源产品,但是其公司也参与了对中国企业的制裁,所以在国内是无法合法使用该产品的。gydtep 发表于 2020-10-28 15:35:03
Kubernetes Service 也具有同样的能力,随着容器化的逐渐成熟,在云原生的落地中 ACK 是必不可少的运行环境,那通过 Service 去综合管理一组服务的 pod 与之前提到的 SLB 的方式是一致的,gydtep 发表于 2020-10-28 17:03:45
文章还提到了“如果我们自己为 ZooKeeper 加上一种客户端缓存的能力,缓存了其他服务地址的话,这样就能缓解在集群不可用时,gydtep 发表于 2020-10-28 17:17:15
依旧可以进行服务发现的能力,并且 Pinterest 与 Airbnb 都有类似的实现”,的确,看起来这样是修复了问题,gydtep 发表于 2020-10-28 19:31:16
但是这并不是完美的,“如无必要,勿增实体”,加入了额外的系统或者应用就得去运维与管理,就需要考虑失效,gydtep 发表于 2020-10-28 19:48:56
考虑 failure 策略,同时在这种场景下实现“exactly once”的目标更为复杂,果然在分布式的世界中,真是没有一口饭是免费的。gydtep 发表于 2020-10-28 19:53:01
本文尝试从更高视角重新审视架构设计的工作,把架构设计的上升到系统设计的立体空间去探索,最终勾勒出系统设计的全域知识体系。