SpringCloud-记

目录

什么是SpringCloud

什么是微服务

SpringCloud的优缺点

SpringBoot和SpringCloud的区别

RPC 的实现原理

RPC是什么

eureka的自我保护机制

Ribbon

feigin优点

Ribbon和Feign的区别


什么是SpringCloud

  • Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
  • Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

什么是微服务

微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。

SpringCloud的优缺点

优点

  • 耦合度比较低。不会影响其他模块的开发
  • 减轻团队的成本,可以并行开发,不用关注其他人怎么开发,先关注自己的开发
  • 配置比较简单,基本用注解就能实现,不用使用过多的配置文件
  • 微服务跨平台的,可以用任何一种语言开发
  • 每个微服务可以有自己的独立的数据库也有用公共的数据库
  • 直接写后端的代码,不用关注前端怎么开发,直接写自己的后端代码即可,然后暴露接口,通过组件进行服务通信。

缺点

  • 部署比较麻烦,给运维工程师带来一定的麻烦。
  • 针对数据的管理比麻烦,因为微服务可以每个微服务使用一个数据库。
  • 系统集成测试比较麻烦
  • 性能的监控比较麻烦

SpringBoot和SpringCloud的区别

SpringBoot专注于快速方便的开发单个个体微服务。

SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来。

为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务

SpringBoot可以离开SpringCloud独立使用开发项目, 但是SpringCloud离不开SpringBoot ,属于依赖的关系.

SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架

RPC 的实现原理

首先需要有处理网络连接通讯的模块,负责连接建立、管理和消息的传输。其次需要有编/解码的模块,因为网络通讯都是传输的字节码,需要将我们使用的对象序列化和反序列化。剩下的就是客户端和服务器端的部分,服务器端暴露要开放的服务接口,客户调用服务接口的一个代理实现,这个代理实现负责收集数据、编码并传输给服务器然后等待结果返回。

RPC是什么

RPC 称远程过程调用(Remote Procedure Call),用于解决分布式系统中服务之间的调用问题。 通俗地讲,就是开发者能够像调用本地方法一样调用远程的服务。 所以,RPC的作用主要体现在这两个方面:

  • 屏蔽远程调用跟本地调用的区别,让我们感觉就是调用项目内的方法;
  • 隐藏底层网络通信的复杂性,让我们更专注于业务逻辑

eureka的自我保护机制

当Eureka Server 节点在短时间内丢失了过多实例的连接时(比如网络故障或频繁启动关闭客户端)节点会进入自我保护模式,保护注册信息,不再删除注册数据,故障恢复时,自动退出自我保护模式。

Ribbon

ribbon是一个负载均衡客户端,可以很好的控制htt和tcp的一些行为。feign默认集成了ribbon。

feigin优点

1.feign采用的是基于接口的注解

2.feign整合了ribbon,具有负载均衡的能力

3.整合了Hystrix,具有熔断的能力

使用:

1.添加pom依赖。

2.启动类添加@EnableFeignClients

3.定义一个接口 @FeignClient(name=“xxx”) 指定调用哪个服务

Ribbon和Feign的区别

1.Ribbon都是调用其他服务的,但方式不同。

2.启动类注解不同,Ribbon是@RibbonClient,feign 的是@EnableFeignClients

3.服务指定的位置不同,Ribbon是在@RibbonClient注解上声明,Feign 则是在定义抽象方法的接口中使用@FeignClient声明。

4.调用方式不同,Ribbon需要自己构建http 请求,模拟http请求


近日总结:大学女生宿舍小团体挺严重的,不止我的宿舍,光是听说到的就不计少数,我的舍友天天躺在宿舍,而我自己天天早出晚归学习,运动,锻炼身体......回到宿舍还要被阴阳怪气,还蛮影响心情的,还有些素质不太高的会趁你不在宿舍的时候动你的东西,给我心情都影响了...... 大学舍友真的做不了朋友......

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

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

相关文章

2024/3/24周报

文章目录 摘要Abstract文献阅读题目引言创新点数据处理研究区域和数据缺失值处理水质相关分析 方法和模型LSTMAttention机制AT-LSTM模型 实验结果 深度学习transformer代码实现1 模型输入1.1 Embedding层1.2 位置编码 2 Encoder2.1 编码器2.2 编码器层2.3注意力机制2.4多头注意…

第五讲 哈希表

我们在前面讲了存储层,以及从次磁盘中将页面加载到缓冲池【Buffer Pool】中,现在我们继续往上,来讨论如何支持 DBMS 的执行引擎从页面中读取/写入数据。这部分是访问方法层的功能,它负责通过索引或者表本身,设置是其他…

生物信息学文章中常见的图应该怎么看?

目录 火山图 热图 箱线图 森林图 LASSO回归可视化图(套索图) 交叉验证图 PCA图 ROC曲线图 这篇文章只介绍这些图应该怎么解读,具体怎么绘制,需要什么参数,怎么处理数据,会在下一篇文章里面给出 火山…

python之jsonpath的使用

文章目录 介绍安装语法语法规则举例说明 在 python 中使用获取所有结构所有子节点的作者获取所有子孙节点获取所有价格取出第三本书的所有信息取出价格大于70块的所有书本从mongodb 中取数据的示例 介绍 JSONPath能在复杂的JSON数据中 查找和提取所需的信息,它是一…

Java设计模式之单例模式(多种实现方式)

虽然写了很多年代码,但是说真的对设计模式不是很熟练,虽然平时也会用到一些,但是都没有深入研究过,所以趁现在有空练下手 这章主要讲单例模式,也是最简单的一种模式,但是因为spring中bean的广泛应用&#…

YoloV8改进策略:BackBone改进|PKINet

摘要 PKINet是面向遥感旋转框的主干,网络包含了CAA、PKI等模块,给我们改进卷积结构的模型带来了很多启发。本文,使用PKINet替代YoloV8的主干网络,实现涨点。PKINet是我在作者的模型基础上,重新修改了底层的模块,方便大家轻松移植到YoloV8上。 论文:《Poly Kernel Ince…

计算机三级网络技术 选择+大题234笔记

上周停去准备计算机三级的考试啦,在考场上看到题目就知道这次稳了!只有一周的时间,背熟笔记,也能稳稳考过计算机三级网络技术!

鸿蒙开发学习:【华为支付服务客户端案例】

简介 华为应用内支付服务(HUAWEI In-App Purchases)支持3种商品,包括消耗型商品、非消耗型商品和订阅型商品。 消耗商品:仅能使用一次,消耗使用后即刻失效,需再次购买。非消耗商品:一次性购买…

计算机常见的知识点(3)

计算机系统 系统的构成 一个完整的计算机系统是由硬件和软件组成 硬件是由运算器、控制器、存储器、输入设备、输出设备五部分组成 其中:中央处理器(简称CPU)运算器控制器 主机中央处理器主存储器 计算机软件包括计算机本身运行所需要的系统软件和用户完成任务…

Mybatis中显示插入数据成功,但在数据库中却没有显示插入的数据

1、在mybatis-config.xml中查看是否添加了JDBC,并引入了映射文件 2、在测试文件中,结尾是否添加提交事务:sqlSession.commit() 添加了这一步就能够将数据提交到数据库中,最后再关闭事务:sqlSession.close() * 如果运…

JWT原理分析

为什么会有JWT的出现? 首先不得不提到一个知识叫做跨域身份验证,JWT的出现就是为了更好的解决这个问题,但是在没有JWT的时候,我们一般怎么做呢?一般使用Cookie和Session,流程大体如下所示: 用…

手撕算法-买卖股票的最佳时机 II(买卖多次)

描述 分析 使用动态规划。dp[i][0] 代表 第i天没有股票的最大利润dp[i][1] 代表 第i天持有股票的最大利润 状态转移方程为:dp[i][0] max(dp[i-1][0], dp[i-1][1] prices[i]); // 前一天没有股票,和前一天有股票今天卖掉的最大值dp[i][1] max(dp[i-1…

Linux查看磁盘空间

查看磁盘空间 df -h 查看目录所占空间 du -sh [目录] 查看当前目录下, 所有目录所占空间 (一级目录) find . -maxdepth 1 -type d -exec du -sh {} \;-maxdepth 1 查看的目录深度是1级, 2则是2级

FOCUS-AND-DETECT: A SMALL OBJECTDETECTION FRAMEWORK FOR AERIAL IMAGES

摘要 为了解决小对象检测问题,提出了一个叫做 Focus-and Detect 的检测框架,它是一个两阶段的框架。 第 一阶段包括由高斯混合模型监督的对象检测器网络,生成构成聚焦区域的对象簇 。 第二阶段 也是一个物体探测器网络,预测聚焦…

【云开发笔记No.6】腾讯CODING平台

腾讯云很酷的一个应用,现在对于研发一体化,全流程管理,各种工具层出不穷。 云时代用云原生,再加上AI,编码方式真是发生了质的变化。 从前,一个人可以写一个很酷的软件,后来,这变得…

<商务世界>《第16课 餐桌礼仪之座次》

1 简要 我国自古以来就很重视座位礼仪,非讲究,分君臣、分宾主、分方位等等而今座位礼仪已经简化为: 以“中”为尊: 中心为尊,突出主位。 以“右”为尊: 从历史上到国际上都是以右为尊。 以“内”为尊&…

故障诊断模型 | 基于图卷积网络的轴承故障诊断

文章目录 文章概述模型描述模型描述参考资料文章概述 故障诊断模型 | 基于图卷积网络的轴承故障诊断 模型描述 针对基于图卷积网络(GCN)的故障诊断方法大多默认节点间的权重相同、导致诊断精度较低与鲁棒性较差的问题,提出了一种基于欧式距离和余弦距离的 GCN 故障诊断方法…

力扣热门算法题 62. 不同路径,66. 加一,67. 二进制求和

62. 不同路径,66. 加一,67. 二进制求和,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.21 可通过leetcode所有测试用例。 目录 62. 不同路径 解题思路 完整代码 Python Java 66. 加一 解题思路 …

29-goto语句

29-1 goto语句介绍 C语言中提供了可以随意滥用的goto语句和标记跳转的标号。 从理论上goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。 但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程…

第十一届蓝桥杯大赛第二场省赛试题 CC++ 研究生组-回文日期

solution1&#xff08;通过50%&#xff09; #include<stdio.h> void f(int a){int t a;while(a){printf("%d", a % 10);a / 10;}if(t < 10) printf("0"); } int isLeap(int n){if(n % 400 0 || (n % 4 0 && n % 100 ! 0)) return 1;r…