springcloud学习

1.版本选择

1.官网查看springcloud与springboot版本对应关系: https://spring.io/projects/spring-cloud#overview

image.png

2.官网查看具体版本号约束:https://start.spring.io/actuator/info
image.png

springcloud选择GA的稳定版,并进入ReferenceDoc
image.png

可以看到准确的版本号对应
image.png

springcloud组件停更与替换

image.png

环境搭建

1.maven project


image.png

2.编码设置


image.png

3.注解支持生效


image.png

4.jdk版本
image.png

5.文件显示过滤


image.png

6.智能提示忽略大小写
image.png

7.下载lombok插件
image.png

8.自动生成序列化
image.png

9.热部署

1)父pom文件

    
        
            
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    true
                    true
                
            
        
    

2)子module pom文件

        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        

3)settings设置


image.png

4)Ctrl+Shift+Alt+/ 快捷键,选择Registry,设置好后,重启idea


image.png

image.png

10.Run Dashboard多个子工程使用它开查看比较方便

在工程下的.idea>workspace.xml中修改这部分配置

  
    
    
  

这样在view>ToolWindow>RunDashboard中就可以找到了

项目搭建

1.Post请求controller中接收实体类时需要添加@RequestBody注解
2.重构引入自定义jar包时,注意包的引用,Mapper.xml中的也要注意更换(根据Copy Reference的值进行替换)。

注册中心对比

Eureka:
Zookeeper:
Consul:
Nacos:

FAQ

服务熔断?

微服务存在雪崩的问题,A调用BC,BC分别调用别的应用,在A的删除链路上,如果有的应用响应时间过长或不可用,那么对A的每一次调用都会造成更多的系统资源消耗,进而引起系统崩溃。
为了微服务的链路,一旦响应时间过长或者不可用,需要快速返回错误信息,进行服务降级,进而熔断。
当检测到服务调用正常后再恢复。

服务降级?

降级是指待遇下降了,访问一个伪装者而不是真实的数据。将服务分为不同的层级,降级时从外围非核心功能先降级。降级具有代码侵入性,和业务功能有关。熔断是框架层面每个微服务都需要有的机制。

服务限流?

缓存可以提升系统访问速度、增大系统处理能力;降级可以将非核心功能屏蔽掉,高峰后再开启;但是有些场景功能又要打开、处理能力又提不上去,那么就需要限流来保护系统。对请求进行限速,一旦超出就进行降级(没办法只能返回兜底数据)、拒绝服务、排队等待等。

你可能感兴趣的:(springcloud学习)