Springboot新手开发 Cloud篇
迪丽瓦拉
2025-05-30 08:02:47
0

前言
👏作者简介:我是笑霸final,一名热爱技术的在校学生。
📝个人主页:个人主页1 || 笑霸final的主页2
📕系列专栏:后端专栏
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏

在这里插入图片描述

目录

  • 一、上一章Springboot新手开发 基本总结
  • 二、springcloud版本介绍
  • 三、注册中心 nacos
  • 四、服务调用 openfeign
  • 五、熔断器Netflix Hystrix
  • 六、整合geteway网关
  • 七、nacos配置中心
    • springboot配置文件的加载顺序


一、上一章Springboot新手开发 基本总结

Springboot新手开发 基本总结==》点此跳转


二、springcloud版本介绍

cloud和boot的版本对应关系

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

Spring Cloud由众多子项目组成,如Spring Cloud Config、Spring Cloud Netflix、Spring Cloud Consul 等,提供了搭建分布式系统及微服务常用的工具,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等,满足了构建微服务所需的所有解决方案。 总体如下

  • 服务发现(注册中心)——Netflix Eureka (nacos)
  • 服务调用——Netflix feign
  • 熔断器——Netflix Hystrix、 (Sentinel )
  • 服务网关——Netflix Zuul、spring cloud gateway
  • 分布式配置中心——Spring Cloud Config (nacos)
  • 客服端负载均衡——Netflix Ribbon
  • 消息总线——Spring Cloud bus(nacos)

三、注册中心 nacos

安装过程

  • 下载nacos 然后解压 官网nacos官网在这里插入图片描述

  • 启动nacos 并访问http://192.168.65.1:8848/nacos/index.html#/login 注意IP地址用戶名和密碼都是nacos
    在这里插入图片描述

实现不同的微服务模块之间调用,把这些模块在注册中心进行注册注册之后,实现互相调用

注册服务

  • 1.引入依赖
org.springframework.cloudspring-cloud-starter-alibaba-nacos-discovery
  • 2.在服务的配置文件中配置 配置nacos地址
#nacos服务地址
spring.cloud.nacos.discovery.server-addr=192.168.65.1:8848
  • 3.在服务的启动类上添加注解@EnableDiscoveryClient
    在这里插入图片描述

四、服务调用 openfeign

前提条件 把互相调用的服务需要在注册中心注册

步骤

  • 一、引入依赖
 org.springframework.cloudspring-cloud-starter-openfeign
  • 二、调用端的启动类添加注解@EnableFeignClients

  • 三、在调用端 创建包和接口在这里插入图片描述在这里插入图片描述

  • 四、测试在这里插入图片描述


五、熔断器Netflix Hystrix

Hystrix 供分布式系统使用,提供延迟和容错功能,隔离远程系统、访问和第三方程序库的访问点,防止级联失败,保证复杂的分布系统在面临不可避免的失败时,仍能有其弹性。

  • 一、添加依赖
org.springframework.cloudspring-cloud-starter-netflix-ribbonorg.springframework.cloudspring-cloud-starter-netflix-hystrix
  • 二、在调用端配置文件中添加配置
#开启熔断机制
feign.hystrix.enabled=true
#设置超时时间 默认10秒
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=3000
  • 三、在创建interface后还要创建实现类(出错了需要实现的类容)在这里插入图片描述
  • 四、在interface上添加注解和属性在这里插入图片描述

六、整合geteway网关

  • 客户端和服务端之间的一面墙,可以起到很多作用:请求转发、负载均衡、权限控制、跨域(如果使用getway来跨域,就得删除模块那个跨域注解)等

映入依赖

org.springframework.cloudspring-cloud-starter-alibaba-nacos-discoveryorg.springframework.cloudspring-cloud-starter-gatewayorg.springframework.cloudspring-cloud-starter-openfeigncom.google.code.gsongson

写配置文件

server:port: 8222
spring:application:name: service-gatewaycloud:
#    网关gateway:discovery:locator:enabled: true  #服务发现 默认是falseroutes:          #路由匹配规则- id: service-acl              #路由id 建议写服务名称predicates: Path=/*/acl/**   #断言  固定写法 Path=匹配规则    /**表示有多个值uri: lb://service-acl        #固定写法 lb://在nacos中注册的名字- id: service-edupredicates: Path=/eduservice/**uri: lb://service-edu- id: service-msmuri: lb://service-msmpredicates: Path=/edumsm/**
#  服务注册nacos:discovery:server-addr: ************:8848

测试
用网关的端口号访问服务

在这里插入图片描述

七、nacos配置中心

当配置信息发生变动时,修改实时生效,无需要重新重启服务器,就能够自动感知相应的变化,并将新的变化统一发送到相应程序上,快速响应变化。比方说某个功能只是针对某个地区用户,还有某个功能只在大促的时段开放,使用配置中心后只需要相关人员在配置中心动态去调整参数,就基本上可以实时或准实时去调整相关对应的业务

springboot配置文件的加载顺序

在这里插入图片描述
在这里插入图片描述

引入依赖

org.springframework.cloudspring-cloud-starter-alibaba-nacos-config

新建配置文件bootstrap.properties或者bootstrap.yml

#配置中心地址
spring.cloud.nacos.config.server-addr=这里写nacos的IP地址:端口号#spring.profiles.active=dev# 该配置影响统一配置中心中的dataId
spring.application.name=配置的名称Data Id

在nacos加上配置文件
在这里插入图片描述

相关内容