springcloud项目知识点「建议收藏」

springcloud项目知识点「建议收藏」springcloud项目知识点

大家好,又见面了,我是你们的朋友全栈君。

springcloud简介:基于springboot 提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。

springcloud与dubbo的区别:最大区别:springCloud抛弃了Dubbod的RPC通信,采用的事基于HTTP的Rest方式。

 

1,创建父工程(.pom);

2,子工程继承父工程,在父工程pom中会自动加上一个子工程模块(.jar)。

3,添加lombok jar包,可实现通过注解的方式自动生成get().set()等方法。也可以实现链式字段写法。(约定》配置》编码)

4,分别创建好生产者和消费者工程,生产者负责dao层、service层,也可以有自己的controller层,只负责生产。然后创建消费者工程,只需要有控制器调用生产者工程的service就行了。(@restTemplate)

5,Eureka:类似于zookeeper,负责服务的注册与发现,在界面上修改springcloud各个服务的配置。

通俗理解:相对于小区的物业。服务的生产者(小区的一个公司)要到Eureka上注册才能使用(交钱了公司才能入住小区),服务的消费者工程(公司的客户)能同时访问eureka和生产者工程(客户可到小区物业查看是否有这家公司,验证真实性)。

      相对于zookeeper的区别:,zookeeper是注册结构的选举机制的选举时间略长,而且选举期间服务是不可用的,不能容忍。Eureka没有主从,当一个集群挂了,可以直接切换到另一个机器。但是获取的数据可能不是最新的。(好死不如赖活着)。

5.1:c-s架构设计。

 

Eureka

6,创建Eureka服务工程。

在启动器上加上注解(@EnableEurekaServer),引入Eureka-server的pom依赖表面,这是个注册中心服务。(物业公司向外暴露交物业费的银行卡号)

生产者注册进Eureka工程,要加入Eureka客户端pom的依赖、Eureka服务的url配置。

启动:先启动Eureka服务,在启动生产者服务,然后在Eureka界面管理就会出现生产者的服务。(配置中的spring-application-name的值就是Eurerka的服务名字)

Eureka有自我保护机制。

Eureka集群环境。

7,一个微服务一个进程

8,传统数据库遵守ACID,即,原子性(Auomictiy),一致性(Consistency),独立性(Isolation),持久性(Durability)

   Nosql数据库遵守。CAP。即,强一致性(Consistency) .可用性(Availability),分区容错性(Partition tolerance),其中现有的nosql数据库只能满足其中两个。(高可用性更适合双十一的临时性)

 

9,Ribben,负载均衡,主要功能是提供客户端的软件负载均衡(Load Balance)算法(均衡算法,简单沦陷,随机选择)。

Ribbon到Eureka集群找查询可用的服务列表,然后对这些服务发送负责均衡请求,负载均衡的默认算法是轮询方式。ribben提供了七种算法。

10,在消费者工程中加上Ribben依赖即可。

11,Hystrix断路器。解决程序出异常、超时、服务异常等的情况。Hystrix能够保证在一个依赖出现问题的情况下,不会导致整体服务失败,避免级联事故故障。

断路器,本身是一种开关,当某个服务单元发生故障后,通过断路器的故障监控(类似熔断保险丝),向调用放返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方无法处理的异常。这样就保证了服务调用方的线程不会长时间等待不必要的占用资源,进而引起雪崩

复杂的微服务有很强的互相调用的依赖关系,Hystrix负责解决这个问题。

服务雪崩:微服务A调用微服务B,微服务B调微服务C,,,,。这就是所谓的“扇出(扇子)”。如果扇出的链路上的某个微服务的调用相应时间过长,或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,即雪崩效应。

熔断过程:熔断后快速返回“错误”的信息。当监测该节点正常后恢复

12,在主程序的基础上创建熔断器工程,也就是给生产者工程加上Hystrix的pom依赖,由生产者返回客户端服务异常信息。

13,主程序需要加上熔断器,负载均衡等的@Enable注解。

14,服务降级:整体资源块不够用了,忍痛将某些服务关掉,待渡过难关后再开启回来,并且客户端会自己准备一个fallback回调,返回一个缺省值,这样虽然服务水平下降,但好歹可用,比直接挂掉要强。

服务的降级处理是在客户端实现的。(相当于在银行窗口的暂停服务)

15,豪猪hystrixDashboard 服务监控

16,zuul路由网关  (类似小区保卫处),作用路由功能负责将外部请求转发到具体的微服务实例上。

zuul工程需要配置Eureka依赖,即需要注册进Eureka集群。

使用过程:zuul到Eureka集群中找到相应的微服务,执行相应业务。

17,springcloud集中管理配置文件

springcloud config分客户端和服务端两部分。通过git客户端管理工具 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105987.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月24日 上午8:40
下一篇 2022年4月24日 上午9:00


相关推荐

  • 广州病例详细地址_广州病例轨迹

    广州病例详细地址_广州病例轨迹为什么WScript.CreateObject(WScript.Shell)无法执行━━━━━━━━━━━━━━━━━━━━━━━━━━源VBS程序∶DimtSett=WScript.CreateObject(“WScript.Shell”)Sett=NothingWScript.Quit(0)运行后出现错误:行:2错误:无法找到名为”WScrip

    2025年5月29日
    6
  • Apache配置+php配置

    Apache配置+php配置一、apache配置首先下载apache安装包,下载地址:http://httpd.apache.org/download.cgi我的是win7系统,所以下载windows的安装包,点击我圈出的地方然后点击ApacheHaus根据自己的电脑选择64位还是32的安装包,进行下载然后解压文件,我解压到E:\Apache\Apache24然后打开文件夹找到conf文件夹…

    2022年7月14日
    23
  • dsp运动控制卡_营销行动方案控制

    dsp运动控制卡_营销行动方案控制ARM+FPGA运动控制卡运动控制卡方案运动控制卡方案运动控制卡方案由于ARM源码核心运动控制算法部分缺失,因此便宜出售此资料,拍前请了解好,不接受退货,资料包含此运动控制卡原理图,PCB图,FPGA源码,ARM去掉算法后的框架源码,拍下后发邮箱。本运动控制卡采用ARM单片机+FPGA架构;ARM单片机是基于Cortex-M3内核的LM3S6911,插补核心算法均在该ARM内完成,一方面通过以太网与上位机界面交换加工数据,另一方面与FPGA(ALTERA的EP1C3)交换加工脉冲计数与IO

    2022年10月15日
    4
  • 高中数学函数定义域知识点总结(附答案)

    高中数学函数定义域知识点总结(附答案)大家知道定义域在高中函数的中的找你要位置 所以研究函数必须优先考虑定义域 今天给大家分享定义域的知识点 作者 vxbomath 定义域也称之为高中函数的的灵魂 而函数又是贯穿整个高中数学的知识体系的章节 所以高中函数定义域对高中数学的重要性就不言而喻了 今天的知识点就分享到这里需要电子版 可以联系老师 更多高质量的高中数学解题技巧分享

    2026年3月19日
    1
  • ireport结构体介绍[通俗易懂]

    ireport结构体介绍[通俗易懂]一个报表的结构大致是几个部分:title、pageHeader、columnHeader、detail、columnFooter、pageFooter、lastPageFooter、summary以及groupHeader、groupfooter。如下图:·Title:每个报表一般会有一个名字,比如×××订单,title就是搁置这个名称的最好地方了,当然你也可以根据需要搁置在合适的地方。Title只在第一页出现。·pageHeader:报表的一些公共要素,比如页码、创建时间、创建人等信息放置在这里是比

    2025年10月18日
    3
  • sqlserver将截断字符串或二进制数据_达梦数据库字符串截断

    sqlserver将截断字符串或二进制数据_达梦数据库字符串截断报的是下面这个错误:原因:在设计表时字段长度给的太小可以查看一下自己数据库中的字段的长度,看是否符合自己需要的长度怎么解决?1)将表中数据类型长度扩大2)减少插入的字符串

    2022年8月31日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号