【弹力设计篇】弹力设计总结

前面主要聊了多个弹力设计,遮盖力主要做一个汇总

弹力设计总图

集群:服务不能是单点的,所以我们的架构需要冗余设计,设计成集群服务,也就是多个副本机制。需要具体的技术

  • 负载均衡+服务健康检查,使用像Nginx或者HAProxy 等SLB技术。 如果是对外系统的话,那么需要使用SLB进行负载均衡。
  • 服务发现+动态路由+服务健康检查,Consul 或Zookeeper。这种方式主要是内部服务的调用,比如订单调用支付,支付有三个服务,应该调用那个服务,那么就需要使用注册中心+RPC的方式进行内部服务调用。
  • 自动化运维,因为传统的人工运维是很浪费时间的。所以需要K8s服务调度、伸缩和故障迁移。

服务隔离
为保证服务之间不会出现多米诺骨牌效应,那么应该对服务进行解耦和拆分。

  • bulkheads模式:业务分片、用户分片、数据库拆分。
  • 自包含系统:所以自包含的系统是从单体到微服务的中间状态,把密切相关的微服务拆分出来,做到没有外部依赖。
  • 异步通讯 :服务发现、事件驱动、消息队列、业务工作流。
  • 自动化运维 服务调用链和性能监控的监控系统。

容错失败设计
一个分布式系统是不能避免出现失败异常的场景,所以我们需要design for 失败。也就是容错设计。

  • 错误方面 :重试、熔断、幂等设计
  • 一致性方面 :强一致性使用两阶段提交,最终一致性使用异步通讯方式。
  • 流控方面 :限流+降级技术
  • 自动化运维方面 :网关流量调度,服务监控。

在这里插入图片描述

所以主要就是三块东西,服务冗余、服务解耦、服务容错
对于服务容错来说,有重试势必就要有幂等设计。而限流、降级、排队、熔断是保证系统的稳定性,在可用性和一致性之间作出的妥协。
除了上述这三点,还要考虑自动化运维,要不然人肉运维的话,故障出现的时候不能及时解决。

弹力开发与运维

在这里插入图片描述在这里插入图片描述

Kubernetes 不是针对语言的,而是针对容器的,所以,它是以通用的方式为所有语言解决分布式计算问题。

Spring Cloud 有一套丰富且集成良好的 Java 库,作为应用栈的一部分解决所有运行时问题

二者可以互补。

小结

这里贴以下弹力设计的文章,感兴趣的可以看以下。
聊聊故障和高可用架构设计
幂等设计
重试设计
降级设计
熔断设计
限流设计
异步通讯设计
隔离设计
容灾 异地多活设计

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【单谐波非线性振动问题求解器 GUI 】使用单个谐波表示解决 MDOF 非线性振动问题(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 💥1 概述 对于解决多自由度(MDOF)非线性振动问题,使用单个谐波表示是一种常见的近似方法。这种方法将系统的非线性部…

使用3ds Max粒子系统创建飞天箭雨特效场景

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 设置箭头 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 我使用多边形建模技术制作了一个简单的箭头,我将 在教程中使用。.max您可以从 下载部分。 箭头.max 步骤 3 将此箭头重命名为静态…

Stability AI推出Stable Diffusion XL 1.0,文本到图像模型

Stability AI宣布推出Stable Diffusion XL 1.0,这是一个文本到图像的模型,该公司将其描述为迄今为止“最先进的”版本。 Stability AI表示,SDXL 1.0能生成更加鲜明准确的色彩,在对比度、光线和阴影方面做了增强,可生成…

【JavaSE】运算符

【本节目标】 1. 熟练掌握各种运算符 这部分内容和C语言的位运算相似,可以参考这篇文章:【C语言】操作符详解 目录 1. 什么是运算符 2. 算术运算符 3. 关系运算符 4. 逻辑运算符 5. 位运算符 6. 移位运算(了解) 7. 条件运算符 1. 什么是运算符 …

用JavaScript和HTML实现一个精美的计算器

文章目录 一、前言二、技术栈三、功能实现3.1 引入样式3.2 编写显示页面3.2 美化计算器页面3.3 实现计算器逻辑 四、总结 一、前言 计算器是我们日常生活中经常使用的工具之一,可以帮助我们进行简单的数学运算。在本博文中,我将使用JavaScript编写一个漂…

如何解决大数据下滚动页面卡顿问题

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 前言 之前遇到不分页直接获取到全部数据,前端滚动查看数据,页面就听卡顿的,当然这和电脑浏览器性能啥的还是有点关系。但根源还是一次性渲染数据过多导致的&#xf…

RTPS规范v2.5(中文版)

实时发布订阅协议 DDS互操作性有线协议 (DDSI-RTPS) 技术规范 V2.5 (2022-04-01正式发布) https://www.omg.org/spec/DDSI-RTPS/2.5/PDF   目 录 1 范围 8 2 一致性 8 3 规范性参考文献 8 4 术语和定义 9 5 标识 …

计算机和医学的交叉融合到底有多强呢?

目录 简介 人工智能在医学诊断中的应用 计算机辅助药物研发 计算机技术在基因组学研究中的应用 数字病理学 穿戴式医疗设备 虚拟现实(VR)和增强现实(AR)技术在医学教育中的应用 机器人手术 区块链技术在医学领域的应用 遥…

【GoLang】MAC安装Go语言环境

小试牛刀 首先安装VScode软件 或者pycharmmac安装brew软件 brew install go 报了一个错误 不提供这个支持 重新brew install go 之后又重新brew reinstall go 使用go version 可以看到go 的版本 使用go env 可以看到go安装后的配置 配置一个环境变量 vim ~/.zshrc, # bre…

UEditor 百度富文本编辑器使用 遇到问题

小小吐槽 碰到前后不分离项目,富文本使用的UEdtior UEditor 点击上传图片转base64 在ueditor.all.js文件中找到这个 callback()函数 这里使用根据图片的url转成base64 UEditore 粘贴图片转base64 UEditor回显图片(base64) 把ueditor.all…

css 书写规范!其他人总结!

CSS书写顺序 1.位置属性(position, top, right, z-index, display, float等) 2.大小(width, height, padding, margin) 3.文字系列(font, line-height, letter-spacing, color- text-align等) 4.背景(background, border等) 5.其他(animation, transition等) CSS书写规范 使用…

免费的音频转换器带你突破音频格式束缚

曾经有一个名叫吴欢的音乐爱好者,他热爱收集各种音频文件,从经典的老歌到新潮的流行曲,样样都不放过。然而,他遇到了一个令人头疼的问题:因为音频格式的不同,他无法将一些珍贵的音乐记录转化为文字形式。他…

IDEA代码自动格式化工具

1.自动import 在IDEA中,打开 IDEA 的设置,找到 Editor -> General -> Auto Import。勾选上 Add unambiguous imports on the flyOptimize imports on the fly (for current project) 2.gitee 提交格式化 设置方法如下: 1.打开设置 2.找到版本…

React Native实现震动反馈效果

React Native实现理想的震动效果 一、背景说明 业务开发中,总会用到一些和用户反馈的效果,用来提升用户对于某个事件或者操作的重要程度,比如常见的就是 长按复制、滑动或点击图表、点击底部TabBar时的反馈等操作。 二、构思实现及过程 2.…

数据结构基本概念及算法分析

文章目录 1. 数据结构基本概念1.1 基本概念和术语1.1.1 数据1.1.2 数据元素1.1.3 数据项1.1.4 数据对象1.1.5 数据结构 1.2 逻辑结构与物理结构1.2.1 逻辑结构(我们最需要关注的问题)1.2.2 物理机构 1.3 数据类型1.3.1 数据类型定义1.3.2 抽象数据类型 2. 算法分析2.1 算法的复…

pytest 自定义HOOK函数

除了系统提过的HOOK函数外,也可以通过自定义HOOK的方式实现想要的功能。 首先创建一个py文件,里面定义自己的HOOK函数,主要pytest里面的hook函数必须以pytest开头。 #myhook.pydef pytest_myhook(user):"""自定义HOOK函数&q…

element时间选择器的默认值

概览:vue使用element组件,需要给时间选择器设置默认值,场景一:默认时间选择器,场景二:时间范围选择器,开始时间和结束时间。 一、默认时间选择器 实现思路: element组件的v-model绑…

【C语言学习——————动态内存管理】

文章目录 一、什么是动态内存管理二、动态内存函数的介绍 1.malloc函数的介绍2.calloc函数的介绍3.realloc函数的介绍三、free函数的介绍 一.什么是动态内存管理 我们知道数据都是在内存中进行储存的,但是如果我们需要调用内存,我们可以通过定义一个变量…

param.grad、requires_grad、grad_fn、grad/梯度为None?

基本概念 1)is_leaf 叶子节点和非叶子节点的区别:计算图中的节点分为叶子节点和非叶子节点,叶子节点可以理解成没有其他tensor再利用它进行计算(例如b a1,那么b需要a进行计算,那么a就不是叶子结点&…

day38-Mobile Tab Navigation(手机tab栏导航切换)

50 天学习 50 个项目 - HTMLCSS and JavaScript day38-Mobile Tab Navigation&#xff08;手机tab栏导航切换&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"…