SpringCloud基本知识


一、SpringCloud基本知识

  • SpringCloud基于HTTP协议,和Dubbo最本质的区别(dubbo的核心是基于RPC)

  • 注册中心:Eureka

  • 客户端负载均衡:Ribbon

  • 声明式远程方法调用:Feign

  • 服务降级,熔断:Hystrix

  • 网关:Zuul

1.springboot和springcloud的关系

  • SpringBoot是基础
  • SpringCloud要基于SpringBoot开发

2.springboot和dubbo对比

  • 核心:

    • Dubbo 底层基于RPC
    • SpringCloud底层基于RestFul,也可以说是基于Http。
  • 其他区别:

    • SpringCloud相对于Dubbo功能更加全面
    • SpringCloud是一个一站式的解决方案
    • SpringCloud能够天然的基于Spring全家桶开发

二、SpringCloud 目标基础测试环境

img

1. 创建父工程

  • pro01_spring_cloud_parent

  • 父工程很重要,里面定义了boot 和 cloud的版本信息

  • 配置依赖管理:


    UTF-8
    1.8
    1.8
    4.12
    1.18.20
    1.2.17
    8.0.28
    1.2.8
    3.5.0
  




  
  
  







  
  
    org.springframework.boot
    spring-boot-dependencies
    2.2.2.RELEASE
    pom
    import
  
  
  
    org.springframework.cloud
    spring-cloud-dependencies
    Hoxton.SR1
    pom
    import
  
  
  
    com.alibaba.cloud
    spring-cloud-alibaba-dependencies
    2.1.0.RELEASE
    pom
    import
  

  
  
    mysql
    mysql-connector-java
    ${mysql.version}
    runtime
  
  
  
    com.alibaba
    druid-spring-boot-starter
    1.2.8
  
    





    
    
      com.baomidou
      mybatis-plus-boot-starter
      ${mybatis.spring.boot.version}
    

    
    
      junit
      junit
      ${junit.version}
    
    
    
      log4j
      log4j
      ${log4j.version}
    
    
      org.projectlombok
      lombok
      ${lombok.version}
    
  


  




  
    
      
        
          maven-clean-plugin
          3.1.0
        
        
          maven-site-plugin
          3.7.1
        
        
          maven-project-info-reports-plugin
          3.0.0
        
      
    
  

2. 创建提供者工程 provider

    
        
            com.xu.springcloud
            cloud-api-commons
            1.0-SNAPSHOT
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-actuator
        






        
            com.baomidou
            mybatis-plus-boot-starter
        
        
        
            com.alibaba
            druid-spring-boot-starter
        
        
        
            mysql
            mysql-connector-java
        
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.projectlombok
            lombok
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            com.baomidou
            mybatis-plus-annotation
            3.5.0
        

    

配置文件

server:
  port: 8001

spring:
  application:
    name: cloud-payment-service
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型
    driver-class-name: com.mysql.cj.jdbc.Driver  #mysql驱动
    url: jdbc:mysql://localhost:3306/db2022?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: root
    password: 123456

#mybatis:
#  mapper-locations: classpath:mapper/*.xml
#  type-aliases-package: com.xu.springcloud.entities  #所在Entity的别名

3. 创建消费者工程

 
        
            com.xu.springcloud
            cloud-api-commons
            1.0-SNAPSHOT
        
        
            com.xu.springcloud
            cloud-api-commons
            1.0-SNAPSHOT
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.projectlombok
            lombok
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        


    

4.创建通用工程

此工程存放通用的组件,直接maven快速构建即可


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

    
        cn.hutool
        hutool-all
        5.7.17