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服务优化与健壮性改进

web服务优化与健壮性改进_创建健壮的微服务架构所涉及的组件相关推荐

  1. 微服务开发及部署_基于 Kubernetes 的微服务部署即代码

    在基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以及它的 ...

  2. 微服务 松耦合_超值干货:微服务架构下如何解耦,对于已经紧耦合下如何重构?...

    今天准备谈下微服务架构下各个微服务间如何解耦,以及对于已经紧耦合的微服务如何进行重构.要明白实际上微服务后续出现的诸多问题往往都是一开始微服务模块划分就不合理导致,对于具体的模块划分方法和原则,我总结 ...

  3. 基于实战开发垂直搜索引擎_基于DDD的微服务设计和开发实战

    作者:欧创新.邓頔.文艺 你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案. 本文是基于 DDD 的微服务 ...

  4. ddd 访问权限_基于DDD的微服务设计和开发实战

    作者:欧创新.邓頔.文艺 你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案. 本文是基于 DDD 的微服务 ...

  5. Mysql保存是事件驱动吗_【CHRIS RICHARDSON 微服务系列】事件驱动的数据管理-5

    编者的话 |本文来自 Nginx 官方博客,是「Chris Richardson 微服务」系列的第五篇文章.第一篇文章介绍了微服务架构模式,并且讨论了使用微服务的优缺点:第二和第三篇描述了微服务架构模 ...

  6. 云服务器_整体服务器与微服务

    云服务器 介绍 刚开始时,由于要求简单,所以应用程序既简单又小. 随着时间的要求和需求的增长,我们的应用程序变得越来越大,越来越复杂. 这导致了将单片服务器开发和部署为一个单元. 在某种程度上,微服务 ...

  7. 微服务架构_企业中的微服务:敌是友?

    微服务架构 宏观问题的微观解决方法? 微服务的炒作无处不在,尽管业界似乎无法就确切的定义达成共识,但我们一再被告知,从单一应用程序转向由小型服务组成的面向服务的体系结构(SOA)是正确的方法.构建和发 ...

  8. 沙洋有几个微服务群_集群 分布式 微服务

    转自:https://blog.csdn.net/qq_37788067/article/details/79250623 概念: 集群是个物理形态,分布式是个工作方式. 1.分布式:一个业务分拆多个 ...

  9. 游戏 服务器 微服务_整体服务器与微服务

    游戏 服务器 微服务 介绍 刚开始时,由于要求简单,所以应用程序既简单又小. 随着时间的要求和需求的增长,我们的应用程序变得越来越大,越来越复杂. 这就导致了将单片服务器开发和部署为一个单元. 在某种 ...

最新文章

  1. eclipse断点调试 出现Source not found
  2. layui 页面保存数据
  3. 2020-12-01 Halcon初学者知识[1] 初始界面
  4. 图像代数运算:平均值去噪,减去背景
  5. 成功解决FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `ar
  6. 每日 30 秒 ⏱ 唯一的数据集
  7. ITK:从三个标量图像组成矢量
  8. windows环境下OpenLDAP安装与客户端连接配置
  9. CSS3动画@keyframes中translate和scale混用出错问题
  10. shell脚本自动备份MySQL数据库
  11. 吴恩达《机器学习》学习笔记十一——应用机器学习的建议
  12. 使用kafka解决zookeeper is not a recognized option when executing kafka-console-consumer.sh报错
  13. 下一代Mac mini将率先搭载苹果自研M2系列芯片
  14. 12.程序员的自我修养---系统调用与API
  15. 前端面试-webpack篇
  16. 探索ESP8285(3)通过EMQX服务器点亮一个LED灯
  17. SpringBoot项目下载resources目录下模板文件
  18. 安装linux时如何选择内存,安装Linux时硬盘划分以及挂载点问题
  19. 阿里云账号注销踩坑实践记录
  20. 在oracle中 缺失关键字,缺失关键字解决方案

热门文章

  1. CF1016F:Road Projects(树形dp)
  2. P4688-[Ynoi2016]掉进兔子洞【莫队,bitset】
  3. P3243-[HNOI2015]菜肴制作【拓扑排序,优先队列】
  4. 亿些模板【字符串+其他】
  5. POJ2524——宗教(Ubiquitous Religions)【图论,并查集】
  6. codeforces1440 D. Graph Subset Problem
  7. 复读数组(nowcoder 1103A)
  8. Java 并发总结——进程与线程
  9. JavaFX8 modena样式(css)源码
  10. Oracle入门(十四.1)之PL / SQL简介