web服务优化与健壮性改进
在本文中,我们将简要学习构建强大的微服务应用程序所需的各种软件组件。 在简要了解每个架构组件之前,我们将陈述设计微服务架构时出现的一般查询。
1.微服务架构组件
每当我们创建微服务应用程序时,我们都会想到以下问题
- 我们将如何注册微服务,以便客户可以使用该注册信息(服务发现)并调用微服务?
- 我们如何确保所构建的微服务应用程序完全容错并且高度可用?
- 我们如何确保只有一个接口提供给客户端,从而减少了很多客户端的工作量,并使Micro Services应用程序非常易于使用?
- 如何无缝平衡传入请求到微服务的负载?
请查看下面的架构图,并让我们了解构建架构所涉及的组件是否可以解决上述所有问题:
1.1 Netflix Eureka服务器
Netflix Eureka充当发现服务器,其中出现后的微服务会将其自身注册为发现客户端。 Netflix Eureka向外界提供了一个REST接口,用于与其通信。 Eureka还具有另一个称为Eureka Client的软件模块,通过它与Eureka Server交互交互以进行服务发现。 Eureka Client还带有内置的Load Balancer,可以对传入的客户端请求进行负载平衡。
Netflix Eureka Server是上述问题1的答案。
1.2 Hystrix服务器
Hystrix充当容错弹性系统,用于避免软件应用程序完全失败。 它通过提供一种断路器机制来做到这一点,在这种机制中,当应用程序平稳运行而没有任何问题时,电路保持闭合状态。 如果应用程序中连续遇到错误,则Hystrix服务器电路将打开,Hystrix将停止对呼叫服务的任何进一步请求,而是将请求转移到回退服务。 这样,它提供了一个高弹性的系统。
Hystrix Server是上面问题2的答案。
1.3 Netfilx Zuul服务器
Netflix Zuul Server充当一种网关服务器,其中所有客户端请求hva都通过它,因此它充当一种客户端的统一接口。 客户端使用单个通信协议与所有微服务进行通信,Zuul服务器则负责使用其适当的通信协议调用各种微服务。 Netflix Zuul还具有内置的负载均衡器,以负载均衡来自客户端的所有传入请求。
Netflix Zuul Server是上述问题3的答案。
1.4 Netflix功能区
Netflix Ribbon充当一种负载均衡器,其中负载均衡来自客户端的所有传入请求。 尽管您可以将其配置为使用任何其他备用负载平衡机制,但默认情况下它使用基本的Round Robin负载平衡策略。 Netflix Zuul Server已内置了Netflix Ribbon。 如果要独立使用Netflix Ribbon,我们必须预配适当的Netflix Ribbon Maven软件包,以在任何应用程序中使用它。
Netflix Ribbon Server是对以上问题4的回答。
2.结论
在本文中,我们简要了解了构建Micro Services应用程序所需的所有软件组件。 在下一篇文章中,我们将尝试详细了解Netflix Eureka的工作原理。
翻译自: https://www.javacodegeeks.com/2016/05/components-involved-creating-robust-micro-service-architecture.html
web服务优化与健壮性改进