微服务八股-分布式事务-注册中心-服务保护

一、分布式事务

1.CAP和BASE

三者不能同时存在。
CP:由于网络分片的存在,如果要保证强一致性就不能写,此时不满足可用性
AP:由于网络分片的存在,如果要保证可用性,能读也能写,就不能保证强一致性。

BASE理论:

2.AT模式原理

添加全局锁,由事务协调者进行记录。只会说由事务协调者管理的事务不能操作这个数据,而其他的还是可以进行操作。
而XA模式开启的是数据库锁,拿到锁后别人不能进行数据库的增删改查任何操作。

其他不由事务协调者管理的事务,可能会出现去修改我们全局锁管理的数据,只是概率很低,预防措施。

AT模式会保存两份快照一个是修改前,一个是修改后。修改后的快照可以判断在第二阶段是否数据进行了修改,进行了就发出警告。

3.TCC模式

4.最大努力通知

分布式事务,解决方案就是避免产生分布式事务

二、注册中心

1.环境隔离

创建命名空间可以有一个唯一标识:

 

2.分级模型

3.Eureka和Nacos

Eureka得自己启动

使用只需要将依赖更改和配置修改

一般注册中心都会采用AP就是可用性,因为不可用的话注册都注册不了叫什么注册中心。

区别:

nacos对服务的注册发现更加敏感,

三、远程调用

1.负载均衡原理

2.切换负载均衡算法

首先对于负载均衡的配置类进行自定义

再在启动类上添加注解

nacos负载均衡先配置中的集群,再带权重的优先

四、服务保护

1.线程隔离

2.滑动窗口算法

服务保护限流熔断等等需要对请求的数量和线程数量计数

固定从窗口算法

类似于就是将窗口画小,然后每次来请求就看前一个小窗口和自己的窗口是否超过数量

这个算法就是选择多大的小区间,以及多少区间数量

3.漏桶算法

对于超过限额的策略有直接拒绝,快速失败;还有就是让它等待,等待的算法就是:漏桶算法

4.令牌桶算法

热点参数限流方法的底层就是令牌桶算法

令牌桶适合于限流的范围是可动态变换的(生成令牌的速率),成本更低,适合需要有很多限流规则的场景。热点参数限流,不是针对接口进行限流,是针对某一个接口中某一个方法的参数进行限流,可以不同参数进行不同限流,有查询商品的接口,有的商品在进行秒杀,秒杀的商品单独设置限流规则,每一个参数有一个自己的令牌桶。参数的使用上下浮动没有达到整个接口的上限是可以接受的。

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

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

相关文章

软件测试面试题(七)

一:测试执行过程的三个阶段 《1》初测期 测试主要功能和关键的执行路径,排除主要障碍 《2》细测期 依据测试计划和测试大纲、测试用例,逐一测试大大小小的功能、方方面面的特性、性能、用户界面、兼容性、可用性等等&a…

Nginx R31 doc-14-Dynamic Denylisting of IP Addresses 动态拒绝IP地址

前言 大家好,我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的,可以参考我的另一个项目: 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …

【讲解下Web前端三大主流的框架】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

Vue3 的 setup 生命周期函数中为什么不能使用 this ?

Vue3 的 setup 生命周期函数中为什么不能使用 this ? 官方解释:在 setup() 内部,this 不会是该活跃实例的引用,因为 setup() 是在解析其它组件选项之前被调用的,所以 setup() 内部的 this 的行为与其它选项中的 this 完…

infoq 读书笔记-Resilience in Deep Systems

1.Service granularity Don’t go with the hype; correspond to a real business capability. When designing complex applications using microservice architecture,we’re looking to define a set of cohesive and loosely-coupled services. we found that defining mi…

【OpenHarmony V4.1.1 源码解析 - 000】文章链接汇总

【OpenHarmony V4.1.1 源码解析 - 000】文章链接汇总 Release Note 链接: 《OpenHarmony-v4.1.1-release.md》 《Release-Note》源码下载链接: 《OpenHarmony-v4.1.1-Release.tar.gz》编译环境配置: 《Docker编译环境》

Java项目:基于SSM框架实现的学生就业管理系统分前后台(ssm+B/S架构+源码+数据库+毕业论文+开题报告)

一、项目简介 本项目是一套基于SSM框架实现的学生就业管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能…

pytorch文本分类(四)模型框架(模型训练与验证)

关卡四 模型训练与验证 本文是在原本闯关训练的基础上总结得来,加入了自己的理解以及疑问解答(by GPT4) 原任务链接 目录 关卡四 模型训练与验证1. 训练1.1 构建模型结构1.2 模型编译1.3 模型训练1.4模型超参数调试 2. 推理2.1 模型准确性…

束测后台实操文档1-PVE、PBS

合肥先进光源束测系统后台基础架构初步设计报告 合肥先进光源束测系统后台搭建进展2024.4.29 关于后台基础架构,写了上面两篇文档,只是框架的印象,没涉及到具体的实操,后面针对具体的搭建慢慢的完善操作的细节,从今年…

基于STM32实现智能园艺系统

目录 引言环境准备智能园艺系统基础代码示例:实现智能园艺系统 土壤湿度传感器数据读取水泵控制温湿度传感器数据读取显示系统用户输入和设置应用场景:智能农业与家庭园艺问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌入式系统…

四川省税务局CDH国产化替代实践

“传统数据仓库对于数据处理时效较低,且无法处理实时增量数据及数据变更,同时,在面对海量税务数据大规模进行查询分析等方面存在一些挑战。我们希望尽快寻找到一款能够替代CDH,并且具备灵活扩展能力的大数据解决方案,以…

有限元法之有限元空间的构造

目录 一、区域Ω的剖分 二、三角形一次元 三、一次元的基函数与面积坐标 四、三角形二次元及其基函数 前两节我们介绍了有限元基本概念和变分理论的推导,本节我们继续探讨有限元空间的构造。 一、区域Ω的剖分 对矩形区域进行三角剖分,其中x方向剖…

MySQL的管理员用户名为root,密码默认为空,如何修改root密码?

MySQL的管理员用户名为root,密码默认为空。1、修改 root密码 MYSQL配置好后,启动成功,默认密码是空,但是为了安全,设置密码(mysql有 一个默认的用户名为root,密码自己定。) …

类 和 对象(二)

构造方法 接上篇,若每次都想下面的setDate方法给对象初始化,未免比较麻烦,那有什么方法可以让初始化更加简便呢? public void setDate(int year, int month, int day){this.year year;this.month month;this.day day;}答&#…

文献分享《Microbiome and cancer》

人类微生物群构成了一个复杂的多王国群落,与宿主在多个身体部位共生相互作用。宿主-微生物群的相互作用影响多 种生理过程和各种多因素的疾病条件。在过去的十年中,微生物群落被认为会影响多种癌症类型的发展、进展、转移 形成和治疗反应。虽然微生物对癌…

C++ final 和 override

final 和 override 是 C11 引入的两个关键字,它们的主要作用如下:final:用于指定一个类不能被继承,或者一个虚函数不能被子类重写。这有助于保护类的设计,防止意外的修改。override:用于显式地指出一个成员…

Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.4 创建Virtio和fw_cfg虚拟化环境

1. 概述 到这个阶段,我们已经把U-boot给跑起来了,如果感兴趣的小伙伴可以去看看。 什么是virtio? QEMU virtio是QEMU(Quick EMUlator)虚拟化技术中用于提高I/O性能的一种机制。QEMU是一个开源的虚拟化软件,可以模拟完整的计算机系统,包括CPU、内存和各种I/O设备。QEMU v…

2024年短视频评论区批量爬取采集软件

一、背景说明 前言 评论区引流,顾名思义,是通过在视频下方进行留言评论、回复评论,吸引用户的注意,从而和你的账号产生互动、交易。比如,在一个关于健身的视频下方,留言分享自己的健身经验或者提出问题。…

使用 SwanLab 进行可视化 MNIST 手写体识别训练

使用 SwanLab 进行可视化 MNIST 手写体识别训练 在线演示demo 本案例主要: 使用pytorch进行CNN(卷积神经网络)的构建、模型训练与评估使用swanlab跟踪超参数、记录指标和可视化监控整个训练周期 一、相关简介 SwanLab SwanLab是一款开源…

gRPC - Protocol Buffer 编译器安装

文章目录 Protocol Buffer 编译器安装如何安装 Protocol Buffer 编译器使用包管理器安装Linux 上,使用 apt 或 apt-get,例如:macOS 上,使用 Homebrew: 安装预编译的二进制文件(任何操作系统)其他…