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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机对油画的影响,现代电脑美术影响下的油画艺术创作

摘要:"21世纪的文盲不是不识字,而是不会读图."随着视觉文化和电脑网络的快速发展,计算机技术也广泛地涵盖了整个意识形态领域.图像已成为这个时代的最大资源,我们已经快速进入"读图时代".九十年代起,计算机图形艺术在科技的带动下飞速发展,电脑…

【FFMPEG应用篇】基于FFmpeg的RGB格式封装MOV文件

/* * 一笑奈何 * cn-yixiaonaihe.blog.csdn.net */#include <iostream> #include <thread> extern "C" { #include "libavformat/avformat.h" #include "libavcodec/avcodec.h" #include "libswscale/swscale.h" #inc…

python launcher卸载后蓝屏_误卸载python2.4导致yum不能用后的修复

去 http://mirrors.ustc.edu.cn/centos/或者镜像下载如下包&#xff0c;版本不一定非常一致 python-2.4.3-56.el5.x86_64.rpm python-devel-2.4.3-56.el5.i386.rpm python-devel-2.4.3-56.el5.x86_64.rpm python-iniparse-0.2.3-6.el5.noarch.rpm python-libs-2.4.3-56.el5.x86…

owin 怎么部署在云中_使用Boxfuse轻松在云中运行Spring Boot应用程序

owin 怎么部署在云中几天前&#xff0c;我开始构建一个将使用REST API检索和存储数据的iOS应用。 该REST API将是我也必须构建的服务器应用程序。 由于我熟悉Java和Spring &#xff0c;因此决定使用Spring Boot作为框架。 为了能够在我的iPhone上使用它&#xff0c;如果我可以在…

【FFMPEG应用篇】基于FFmpeg的PCM数据编码为AAC

/* * 一笑奈何 * cn-yixiaonaihe.blog.csdn.net */#include <iostream> #include <thread> extern "C" { #include "libavformat/avformat.h" #include "libavcodec/avcodec.h" #include "libswscale/swscale.h" #inc…

计算机过程控制系统实例ppt,chap7 前馈控制系统_武汉理工大学:调节仪表与过程控制系统_ppt_大学课件预览_高等教育资讯网...

第七章 前馈及复合控制系统其他反馈控制的缺点&#xff1a;无法将干扰克服在被控制量偏离设计值之前。被控对象总是存在一定的纯滞后和容量滞后&#xff0c;故限制了控制作用的充分发挥。 7-1 基本概念1、问题的提出2、技术思路直接按扰动而不是按偏差进行控制。干扰发生后&…

用python画时序图源代码_使用python实现画AR模型时序图

背景&#xff1a; 用python画AR模型的时序图。 结果&#xff1a;代码&#xff1a; import numpy as np import matplotlib.pyplot as plt """ AR(1)的时序图&#xff1a;x[t]a*x[t-1]e """ num 2000 e np.random.rand(num) x np.empty(num) &…

属性拼接转换成字符串_使用一些可选的将字符串配置属性转换为其他类型

属性拼接转换成字符串有一天&#xff0c;您遇到一些代码&#xff0c;并认为这很漂亮&#xff0c;为什么我没有想到呢&#xff1f; 因此&#xff0c;我的长期同事Mark Warner在使用方法引用处理从String进行转换的标准名称/值存储模式方面有一个不错的选择。 int size store.g…

【FFMPEG应用篇】基于FFmpeg的PCM和RGB数据统一封装

项目采用工程模式进行构造。 技术解决难点&#xff1a; 1.编码后的PTS时间一定要赋值。2.音视频封装同步问题&#xff0c;其中涉及到PTS同步问题&#xff0c;例如视频25PTS/s 音频43PTS/s&#xff08;44100采样率/1024每帧&#xff09;&#xff0c;音频要慢于视频所以这种情…

windows数据自动上传服务器,windows服务器间自动传输文件

日常运维工作中需要在windows服务器间传输文件的使用场景比较多&#xff0c;比较典型的例子为应用程序的离线自动备份&#xff0c;下面分享笔者日常使用的服务器间自动传输文件脚本rem 设置共享net use \\**IP**\程序配置和数据备份 "******(密码)" /user:"admi…

python模块使用_一文让你学会所有的python模块使用

部分高等技能:为了削减一个编译模块的大年夜小&#xff0c;你可以在 Python 敕令行中应用 -O 或者 -OO。-O 参数删除了断言语句&#xff0c;-OO 参数删除了断言语句和 __doc__ 字符串。 因为某些法度榜样依附于这些变量的可用性&#xff0c;你应当只在肯定无误的场合应用这一选…

rest web服务_在WildFly的REST Web服务中与Jackson的双向关系

rest web服务这是使用Jackson的REST Web服务中Java实体之间的双向关系的示例。 假设我们在两个实体Parent和Child之间存在双向关系。 使用MySQL工作台为这两个表生成SQL模式文件。 DROP SCHEMA IF EXISTS bidirectional_schema ; CREATE SCHEMA IF NOT EXISTS bidirectional…

【开源项目】基于Directx屏幕录制

#include<d3d9.h> #include<iostream> #pragma comment(lib,"d3d9.lib") using namespace std; //截取全屏 void CaptureScreen(void *data) {//1 创建directx3d对象static IDirect3D9 *d3d nullptr;if (!d3d){d3d Direct3DCreate9(D3D_SDK_VERSION);…

git 修改分支名字_基础Git操作与GitHub协作吐血整理,收好!| 原力计划

作者 | 光子俊来源 | CSDN博客出品 | CSDN(ID:CSDNnews)Git介绍Git是目前世界上最先进的分布式版本控制系统&#xff0c;可以为我们管理项目、构建工程、多人协作提供便利&#xff0c;作为一个爱技术的你可以是必须要掌握的呀&#xff01;&#xff01;&#xff01;Git安装(inst…

Win7system登录打开计算机,Windows7系统system文件丢失导致开机黑屏如何解决

最近有windows7系统用户在开机的时候遇到了黑屏的问题&#xff0c;却提示“因以下文件的损坏或丢失&#xff0c;Windows无法启动windows/system32/config/system”的错误&#xff0c;导致无法开机&#xff0c;针对Windows7系统system文件丢失导致开机黑屏问题&#xff0c;本文就…

javafx阴影_JavaFX技巧来节省内存! 属性和可观察对象的阴影场

javafx阴影在 JavaFX的世界中&#xff0c; Properties API允许UI开发人员将值绑定到UI控件。 这种功能出奇的简单&#xff0c;但是当对象模型经常使用属性时&#xff0c;应用程序可能会很快耗尽内存。 我通常会编写两个单独的对象&#xff0c;例如pojo类和表示模型对象。 此技术…

【开源项目】基于QT录制PCM音频实例详细

#include "QtAudio_input.h" #include <QtWidgets/QApplication> #include<QAudioInput> #include<iostream> using namespace std; int main(int argc, char *argv[]) {QAudioFormat fmt;fmt.setSampleRate(44100);//样本率fmt.setSampleSize(16)…

工业计算机改造报告,工业计算机实验报告..docx

实验一 A/D、D/A 转换实验一、实验目的1.了解温控系统的组成。2.了解NI 测量及自动化浏览器的使用并对数据采集卡进行设置。3.了解Dasylab 软件的各项功能&#xff0c;并会简单的应用。4.通过实验了解计算机是如何进行数据采集、控制的。二、实验设备微型计算机、NI USB 6008 数…

yum install -y 是什么意思_为什么你应该在docker 中使用gosu?

为什么要使用gosu&#xff1f;Docker容器中运行的进程&#xff0c;如果以root身份运行话会有安全隐患&#xff0c;该进程拥有容器内的全部权限&#xff0c;更可怕的是如果有数据卷映射到宿主机&#xff0c;那么通过该容器就能操作宿主机的文件夹了&#xff0c;一旦该容器的进程…

openshift_Openshift源中的高可用性Drools无状态服务

openshift嗨&#xff0c;大家好&#xff01; 在这篇博客文章中&#xff0c;我想举一个简单的示例&#xff0c;展示使用Openshift 3&#xff08;Docker和Kubernetes&#xff09;扩展我们的Drools Stateless服务有多么容易。 我将展示如何通过按需提供新实例来扩展我们的服务&…