原文链接:https://wen-tao.com/netflixoss-intro/
Netflix在开源方面的成果(请参阅netflix.github.io)为目前市场上的分布式系统提供了一套最全面的、经过实战检验的软件。从媒体编码优化到可发起大规模的基础架构故障来测试系统恢复力的“Simian Army”, 这套软件的涵盖范围很广。本篇博文的重点是介绍专门用来解决微服务架构问题的NetflixOSS软件。下面列出了一些大家最熟悉的软件。
可以将它看作是一个“电话簿”,用途是定位微服务。这一服务注册表可以提供中间层负载均衡功能以及其他功能。它能够解决很多与动态服务地址相关的问题,还可以帮助客户端只向“良好的”微服务实例发送请求。
解决如何可靠地提供共享配置值的问题。借助Archaius,无状态的微服务可始终保持最新设置(这些设置得到集中维护和更新),无需使用相关应用来重新编译或重启。因此,所有实例的配置属性一致性问题可以得到解决。
减少集中式负载均衡的负荷,利用客户端负载均衡功能,围绕向哪里发送微服务请求的问题做出明智决策。Ribbon与Eureka集成,可确保客户端掌握准确的全局信息。
Hystrix的目标是消除延迟,减少异常服务的影响。它采用“断路器”模式,当异常达到一定数量时,软件会“断开电路”,阻止再调用故障服务,直到它完成一系列成功调用。Hystrix通过快速响应故障,提供回退机制,帮助团队避免连锁故障。
被称为“所有请求的前门”。Zuul是一款边缘服务工具,基于一组过滤条件来路由流量。Netflix将该软件用于多种用途,包括身份验证检查、压力测试、静态响应处理以及针对特定后端群集的智能、动态路由。与众多NetflixOSS项目一样,Zuul也集成了Eureka和Ribbon等姊妹软件。
运维现代化的系统要依赖各种及时指标,以提供近乎实时的智能。Atlas通过捕获遥测数据来衡量系统当前的运行状况,并提供查询功能以发现痛点。
这款Netflix工具用于执行多云持续交付,其目标是通过定义完善的管道,让代码部署工作变得简单而安全。Spinnaker目前支持AWS、Microsoft Azure、Google Compute Engine、Kubernetes和Cloud Foundry。