SpringCloud全家桶---常用微服务组件(1)

在这里插入图片描述

注册中心:
*作用: 服务管理
Eureka(不推荐)[读音: 优瑞卡]
Nacos(推荐)
Zookeeper [读音: 如k波]
Consul [读音:康寿]

**注册中心的核心功能原理(nacos)**
服务注册: 当服务启动时,会通过rest接口请求的方式向Nacos注册自己的服务
服务心跳:  NacosClient 会维护一个定时心跳持续通知NacosServer,默认5秒一次,超过15秒,会将服务健康状态设置为false(拉去时会忽略),超过30秒会剔除
服务发现: nacosClient定时任务,实时去拉去健康服务
服务终止: NacosClient会主动通过Rest请求NacosService,

负载均衡:
* 作用: 客户端的负载均衡
ribbon [读音: 瑞本]
LodaBalancer(推荐)

服务调用
*作用: 能像调用本地方法一样优雅
Feign(不推荐)
OpenFeign(推荐)
Dubbo

配置中心
SpringCloud config
NacosConfig(推荐)

服务熔断:
*防止服务雪崩,防止流量激增打垮冷系统
Hystrix
sentinel(推荐) [读音: 申特闹 ]

分布式事务
Seata

有四种模式: AT、TCC、SAGA 和XA Seata实现原理:
两个阶段,三个角色
TC: 事务协调者,独立运行seata-server,用于接受事务注册,提交和回滚
TM: 事务管理者(发起者),告诉TC全局事务提交回滚
RM: 事务资源,每一个RM都会作为一个分支事务注册在TCAT模式: 
第一阶段: 
TM(事务发起者)向TC申请开启一个全局事务,事务创建并生成一个全局唯一的XID
XID在微服务调用链路的上下文中传播
① seata会拦截"业务sql",解析sql语句
②查询 “业务SQL” 要更新的业务数据,在业务数据被更新前,将其保存成 “before image”
③执行 “业务SQL” ,更新业务数据
④查询更新后的数据,将其保存成 “after image”
⑤将 before image 和 after image 保存至 Undo Log 表中
生成行锁
以上操作全部在一个数据库事务内完成,这样保证了一阶段操作的原子性。
提交前RM(事务资源)会向TC(事务协调者)注册分支;
TM(事务发起者)向TC(事务协调者)发起针对XID的全局提交或回滚,将本地事务提交结果上报给TC第二阶段:
提交:   因为 “业务SQL” 在一阶段已经提交至数据库,所以 Seata 框架只需将一阶段保存的快照数据(Undo Log )和行锁删掉,完成数据清理即可。
回滚:   校验当前数据和 after image 数据,数据一致说明没脏写,可以还原数据,脏写了就要转人工处理;
用before image 还原数据,删除undolog数据和行锁

服务网关
*作用: 一些本身跟业务无关的公共逻辑,鉴权,日志,限流,跨域
zuul
SpringCloudGateway(推荐)
linkred
Kong

业务网关: 降级/熔断,负载均衡,鉴权,业务规则,参数校验
流量网关:  安全策略,流量分发,跨域实现

链路追踪
*作用: 追踪服务健康状况
Skywalking(推荐)
Zipkin

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

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

相关文章

Sora背后的论文(1):使用 lstms 对视频展现进行无监督学习

之前那篇《Sora背后的32篇论文》发出后,大家都觉得不错,有很多小伙伴都开始啃论文了。 那么我就趁热打铁,把这32篇论文的通俗解读版贴一下。 从去年开始,我基本上形成了一个思维方式,任何事情做之前先看看 有没有好的…

个人博客系列-环境配置-gitee(2)

注册gitee账户 地址:https://gitee.com/ 此步骤省略 新建仓库 执行以下命令 即可 拉取代码 创建目录 mkdir myCode && cd myCode 登录gitee找到项目,点击克隆,拉取代码 连接远程仓库命令 git remote add origin 仓库地址http…

MariaDB落幕和思考

听过MySQL的基本也都知道 MariaDB。MariaDB由MySQL的创始人主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。传闻MySQL的创始人担心…

创建型设计模式 - 原型设计模式 - JAVA

原型设计模式 一 .简介二. 案例三. 补充知识 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 一 .简介 原型模式提供了一种机制,可以将原始对象复制到新对象&#xff0…

[TCP] TCP/IP 基础知识词典(2)

我想统计一下,TCP/IP 尤其是TCP协议,能搜到的常见的问题,整理起来,关键词添加在目录中,便于以后查阅。 目前预计整理共3篇: [TCP] TCP/IP 基础知识问答 :基础知识 [TCP] TCP/IP 基础知识问答&…

游戏平台如何定制开发?

随着科技的飞速发展和互联网的普及,游戏平台已成为人们休闲娱乐的重要选择。为了满足用户多样化的需求,游戏平台的定制开发显得尤为重要。本文将探讨游戏平台定制开发的过程、关键要素以及注意事项,为有志于涉足此领域的开发者提供参考。 一、…

python opencv绘制图像轮廓

目录 一:查找绘制轮廓 二:计算图像的矩特征 三:计算Hu矩

ApexRBp在线粒子传感器在电动汽车电池制造的应用

电动汽车电池的崛起与颗粒污染的挑战 随着电动汽车(EV)市场的迅速扩张,对高性能锂离子电池的需求也急剧增加。这些电池不仅是EV的心脏,更是推动其前行的核心动力。然而,在电池制造的每一个环节,都需要对多…

【Python笔记-设计模式】适配器模式

一、说明 适配器模式是一种结构型模式,它使接口不兼容的对象能够相互合作 (一) 解决问题 主要解决接口不兼容问题 (二) 使用场景 当系统需要使用现有的类,但类的接口不符合需求时当需要一个统一的输出接口,但输入类型不可预知时当需要创…

查询数据库的编码集Oracle,MySQL

1、查询数据库的编码集Oracle,MySQL 1.1、oracle select * from v$nls_parameters where parameterNLS_CHARACTERSET; 查询版本:SELECT * FROM v$version 2、MySQL编码集 SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM information_schema.SC…

【了解机器学习的定义与发展历程】

曾梦想执剑走天涯,我是程序猿【AK】 目录 简述概要知识图谱 简述概要 了解机器学习的定义与发展历程 知识图谱 机器学习(Machine Learning,ML)是一门跨学科的学科,它使用计算机模拟或实现人类学习行为,通…

路由器的端口映射如何设置?

路由器的端口映射设置是网络连接中常用的配置功能,通过将外部网络访问请求映射到内部设备,实现局域网内设备的远程访问。本文将介绍如何进行路由器的端口映射设置,并以【天联】组网产品为例进行说明。 【天联】组网产品介绍 【天联】组网是一…

css3d制作正方体

使用css3d技术 &#xff0c;制作一个可以动态动画的正方体模型 效果图&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html> <head><style>/* 设置高度宽度100%并且左右居中、上下居中 */html,body {width: 100%;height: 100%;display: flex…

RENISHAW雷尼绍双读数头系统应用分享

在精密回转运动控制中&#xff0c;大多数场合都会对系统的回转定位精度有严格的要求&#xff0c;RENISHAW雷尼绍圆光栅系统&#xff08;RESM增量和RESA绝对值&#xff09;对于回转角度的反馈测量方案能有效的解决运动控制对回转精度的需求。但是配置单个读数头的圆光栅系统的精…

C#最优队列最小堆小顶堆大顶堆小根堆大根堆PriorityQueue的使用

最优队列有多种叫法&#xff0c;什么小根堆&#xff0c;大根堆&#xff0c;小顶堆&#xff0c;大顶堆。 队列分多种&#xff0c;线性队列&#xff08;简单队列&#xff09;&#xff0c;循环队列&#xff0c;最优队列等等。 最优队列&#xff0c;可以看作堆叠箱子&#xff0c;…

3分钟看懂设计模式01:策略模式

一、什么是策略模式 定义一些列算法类&#xff0c;将每一个算法封装起来&#xff0c;并让它们可以互相替换。 策略模式让算法独立于使用它的客户而变化&#xff0c;是一种对象行为型模式。 以上是策略模式的一般定义&#xff0c;属于是课本内容。 在没有真正理解策略模式之…

简单几步通过DD工具把云服务器系统Linux改为windows

简单几部通过DD安装其他系统&#xff0c;当服务器的web控制台没有我们要装的系统&#xff0c;就需要通过DD&#xff08;Linux磁盘&#xff09;工具来更改系统&#xff0c;&#xff08;已知支持KVM系统&#xff09; 本文如何简单的更换系统&#xff0c;不通过web控制台来更换&a…

mysql开启远程访问并开启3306端口

登陆mysql mysql -u root -p设置允许访问的地址 如果你想允许用户root从ip为192.168.1.123的主机连接到mysql服务器&#xff0c;并使用password密码登录。&#xff08;根据情况自行替换&#xff09; GRANT ALL PRIVILEGES ON *.* TO root192.168.1.123 IDENTIFIED BY passwo…

Python奇幻之旅(从入门到入狱高级篇)——面相对象进阶【中】

目录 2. 面向对象进阶 2.1. 成员 2.2. 变量 2.2. 方法 2.4. property属性 2.5. 成员修饰符 2.6. 对象嵌套 2.7. 特殊成员 引言 本篇内容主要是面向对象的进阶&#xff0c;讲解一些特殊的成员和方法&#xff0c;更加深入迭代器是如何通过对象实现的。 2. 面向对象进阶 …

Bellman-Ford(贝尔曼福特算法)

简介 贝尔曼-福特算法&#xff08;Bellman-Ford Algorithm&#xff09;是一种用于求解单源最短路径问题的算法&#xff0c;它可以处理带有负权边的图。 该算法的实现思路是通过不断迭代松弛操作来更新最短路径&#xff0c;直到找到最优解。 名词解释&#xff1a;1. 松弛操作&…