SpringCloud

理解

  • 把一个项目根据业务拆分为一个个小项目,每个项目都是独立的,有自己的数据库。服务之间使用轻量级HTTP交互。每个项目都可以部署多份,达到高可用、高性能、高拓展性。
  • 对springcloud的认识:把一个个springboot项目组合在一起,注册到注册中心,可以通过http请求的方式互相获取数据。

组件

一、组件
☆、nacos:服务注册、配置中心
使用:引入依赖、开启服务注册与发现功能@EnableDiscoveryClient
持久化:导入naocs持久化的表,在配置文件中添加数据库的连接信息。
☆、Feign:远程调用
使用:引入依赖、调用方启动类上开启远程调用功能,要指定远程调用功能放的基础包,@EnableFeignClients(basePackages=“com.atguigu.gulimall.member.feign”)、调用方里面编写接口,
在接口里声明@FeignClient(“gulimall-coupon”)他是一个远程调用客户端且要调用coupon服务,然后编写要调用哪个方法,要调用coupon服务的/coupon/coupon/member/list方法
☆、gateway:路由转发,权限校验,流量控制
使用:创建网关模块,开启服务的注册与发现、配置注册中心地址、配置文件中配置路由转发规则。
☆、sentinel:网关流控
☆、sleuth(追踪) +Zipkin(可视化)链路追踪:查看调用关系
使用:
1.下载zipkin的jar包并运行。
2.引入了zipkin的依赖(引入了zipkin就相当于引入了sleuth)。
3.配置文件中配置一下zipkin和sleuth,然后启动项目,启动项目后随便访问几个功能,浏览器输入192.168.56.10:9411去查看。

nacos

启动

☆、windows下启动:切到nacos的bin目录下,执行startup.cmd -m standalone(standalone单机模式,本地开发的时候用)

作为配置中心

初级

☆、可以就配一个bootstrap.properties文件,里面就配nacos的配置就行了
☆、项目中创建/src/main/resources/bootstrap.yml

spring:
  application:
    name: gulimall-coupon
  cloud:
    nacos:
      config:
        #配置文件的格式,一定要加,不然找不到
        file-extension: yml
        server-addr: 127.0.0.1:8848
        #命名空间ID
        namespace: 6d309673-5cf9-41f3-9e3d-177f80aab1a8

☆、浏览器去nacos里的配置列表,点击+号,data ID:gulimall-coupon.yml,然后配置相关信息。
☆、拓展:
1.在配置了bootstrap.yml的情况下,bootstrap.yml的优先级高于application.yml。
2.实时获取nacos里面的参数可以在controller上加上@RefreshScope注解,不需要重启项目;如果修改了数据库配置等信息,需要重启项目。

命名空间

☆、分割dev 、test 、 prod环境。
☆、步骤

在这里插入图片描述
在这里插入图片描述
最后在bootstrap.yml里面配置命名空间ID

配置集

☆、一个命名空间里面写多个配置文件组合着用。也可以在一个命名空间里面把文件分成dev 、test 、 prod,改4就可以。在这里插入图片描述
☆、bootstrap.yml文件

spring:
  application:
    name: gulimall-coupon
  cloud:
    nacos:
      config:
        #-----1
        group: dev
        #命名空间ID-----2
        namespace: 86453789-6c92-4e1c-a7a8-69131c344c94
        server-addr: 127.0.0.1:8848
        ext-config:
          #----3 
          - data-id: datasource.yml
            #---4
            group: DEFAULT_GROUP
            refresh: true
          - data-id: mybatis.yml
            group: DEFAULT_GROUP
            refresh: true
          - data-id: other.yml
            group: DEFAULT_GROUP
            refresh: true

热更新

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

feign

  • 参数是集合时接收不需要用@RequestParam

设置超时时间

#设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
	#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
	ReadTimeout: 5000
	#指的是建立连接后从服务器读取到可用资源所用的时间
	ConnectTimeout: 500

gateway

☆、参考谷粒笔记基础篇-1。
☆、配置写法

sentinel

作用

  • 限流 熔断 降级
    在这里插入图片描述
    在这里插入图片描述

集成

  • 官方文档

自定义被限流后返回的内容

  • 写一个配置类
    在这里插入图片描述

对feign远程调用进行监控

  • 集成参考官方文档
  • 默认情况下,sentinel是不会对feign远程调用进行监控的,需要开启配置
    feign:
    sentinel:
    enabled: true
  • 调用方feign接口中编写被限流后的处理类(这样被限流降级后不会调用到被调用方)。
    @FeignClient(value = “gulimall-seckill”,
    fallback = SeckillFallbackService.class)
  • 也可以设置被调用方的熔断策略
    1.一般不这么做,在以下情况下可以这么做
    在这里插入图片描述
    2.要在被调用方写一个配置类,返回设置熔断后的返回数据。
    在这里插入图片描述

自定义受保护的资源

  • 代码的方式
  • 注解的方式

网关流控

sleuth(追踪) +Zipkin(可视化)调用链路追踪

  • 作用:查看调用关系,当调用慢时查看是网络慢还是服务慢。由于微服务项目模块众多,相互之间的调用关系十分复杂,因此为了分析工作过程中的调用关系,需要进行链路追踪。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值