SpringCloud使用手册

目录

​编辑

 一、IDEA新建project工作空间

1、工程重构:重复代码整合

二、服务注册与发现

1、Eureka

 1.1、配置依赖、配置yml文件、主启动类加注解(开启服务)(单机)​编辑

 2.2、启动使用(单机)

 2.3、修改映射配置添加进hosts文件(集群配置)

2.4、配置yml文件(集群配置)

 2.5、负载均衡

 2.6、优化

 2.8、关闭保护机制

2、Zookeeper

2.1、添加依赖、yml配置文件、主启动类

 2.2、测试

3、Consul

 3.1、添加依赖、配置yml文件、主启动类

4、Nacos

5、前三种服务注册中心的解析

三、服务调用、负载均衡

1、Ribbon负载均衡服务调用

1.1、概述

1.2、Ribbon负载均衡演示

1.3、Ribbon核心组件IRule

1.4、Ribbon负载均衡算法

 2、OpenFeign服务接口调用

2.1、概述

 2.2、使用步骤:

 2.3、OpenFeign超时控制

 2.4、OpenFeign日志打印功能

五、服务降级(解决服务雪崩)、服务熔断、服务限流、服务隔离

1、Hystrix(断路器)

1.1、服务降级

1.2、服务熔断

1.3、服务限流

1.4、使用

1.5、服务监控hystrixDashboard

六、服务网关

1、Gateway新一代网关

​编辑 1.1、入门配置

1.2、路由:

 1.3、断言:

 1.4、过滤:

七、服务配置

1、Config

 1.1、使用

 1.3、Config客户端之动态刷新

八、服务总线

 1、Bus

1.1、概述

1.2、RabbitMQ环境配置

1.3、Spring Cloud Bus动态刷新全局广播

1.4、Spring Cloud Bus动态刷新定点通知

九、消息驱动

1、Spring Cloud Stream

1.1、消息驱动生产者

1.2、消息驱动消费者 

​编辑 1.3、分组消费和持久化

十、分布式请求链路跟踪

1、SpringCloud Sleuth

1.1、概述

1.2、搭建链路监控步骤

十一、SpringCloud Alibaba(后面几章的内容都是围绕Alibaba)

1、能干什么

 2、使用

十一、Nacos服务注册和配置中心(Alibaba)

 1、安装 

2、服务注册的使用 

 3、配置中心的使用

 3.1、多环境多项目管理​编辑

 3.2、Nacos集群和持久化配置

十二、Sentinel实现熔断与限流(Alibaba)

​编辑 1、安装运行

 ​编辑2、使用

 3、流控规则

​编辑 4、降级规则

5、热点key限流

​编辑6、系统规则

7、@SentinelResource(兜底方案)

​编辑

8、服务熔断功能 fallback

8.1、 Sentinel整合Ribbon

​编辑 8.2、Sentinel整合Feign

 8.3、总结:熔断框架区别

 9、持久化规则

十三、Seata处理分布式事务(Alibaba)

 1、Seata-Server安装和修改配置

2、使用 


Spring Cloud=分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶。

 版本选择去官网看:

 一、IDEA新建project工作空间

1、工程重构:重复代码整合

重复的代码

二、服务注册与发现

1、Eureka

 1.1、配置依赖、配置yml文件、主启动类加注解(开启服务)(单机)

 2.2、启动使用(单机)

 让某某类注册到服务中

 

 

 启动结果

 2.3、修改映射配置添加进hosts文件(集群配置)

 

 

2.4、配置yml文件(集群配置)

将8001端口注册到7001端口和7002端口服务中,

8001的yml配置:

 2.5、负载均衡

 控制类:

 

 这个注解默认是轮询,两个端口换着访问

 2.6、优化

优化前:

 解决方案:

 修改yml文件:

 优化后:

2.7、yml文件最终配置、主启动类的注解

eureka:
    client:
        #表示是否将自己注册进EurekaServer默认为true
        register-with-eureka: true
        #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
        fetchRegistry: true
        service-url:
        #单机版
        #defaultZone: http://localhost:7001/eureka
        #集群版
        defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
    instance:
        instance-id: payment8001
        prefer-ip-address: true  #访问路径可以显示IP地址

 2.8、关闭保护机制

2、Zookeeper

2.1、添加依赖、yml配置文件、主启动类

 如果版本冲突就换依赖:

 

 2.2、测试

 

3、Consul

 

 3.1、添加依赖、配置yml文件、主启动类

4、Nacos

5、前三种服务注册中心的解析

 

三、服务调用、负载均衡

1、Ribbon负载均衡服务调用

1.1、概述

1.2、Ribbon负载均衡演示

添加依赖:

 一般配合RestTemplate的使用

 使用:

1.3、Ribbon核心组件IRule

 替换方式:

 

 

 写类的内容:

 

 在主启动类中添加新注解:

1.4、Ribbon负载均衡算法

 2、OpenFeign服务接口调用

2.1、概述

 

 

 2.2、使用步骤:

添加依赖:

 主启动类上开启:

 

 2.3、OpenFeign超时控制

 设置yml配置文件

 2.4、OpenFeign日志打印功能

 首先,建config包,在包里建FeignConfig类

 在yml配置文件配置:

五、服务降级(解决服务雪崩)、服务熔断、服务限流、服务隔离

1、Hystrix(断路器)

1.1、服务降级

 1.4的解决方案

 8001端口(支付微服务)设置降级服务

 80端口(消费者)

配置yml文件

 主启动类加注解

 业务类代码

 目前还会有以下问题

 解决:

8001端口处理方式

 

 80端口处理方式

1.2、服务熔断

 1.4问题在1.1的解决方案上继续优化

 8001端口(服务端)

Service类中

 

 说明

1.3、服务限流

1.4、使用

可以用在客户端和服务端,一般会用在客户端

添加坐标

 高并发测试导致的故障现象和原因

 

 解决方案

 对方服务(8001)ok,调用者(80)自己出故障或有自我要求(自己的等待时间小于服务提供者),自己处理降级

解决方案:上面有详细过程

1.5、服务监控hystrixDashboard

新建一个类

 添加依赖

 主启动类添加新注解

 其他主启动类要被hystrix监听的话,要加上这一个配置(放在主启动类中)

 启动之后

 被监听的类都必须带有以下两个依赖

 监听端口号

 查看情况并分析

 

 

 

六、服务网关

1、Gateway新一代网关

介绍

 1.1、入门配置

 引入依赖

1.2、路由:

 配置yml文件:方式一,少量路由可以用

 

 当数量庞大的话就用:方式二,配置类

 使用返回结果

 1.3、断言:

 1.4、过滤:

自定义过滤器

 新建包、新建类

七、服务配置

为什么需要服务配置

 因为项目越大,application.yml配置文件越来越多,里面的重复代码也越来越多。

1、Config

 1.1、使用

3344端口

添加依赖 

配置yml文件

主启动类加注解

 修改windows的hosts文件

 获取GitHub上的配置文件

 新建3355端口去获取3344的全局环境配置(3344从GitHub上获取的全局环境配置信息)

添加依赖

 配置yml文件(bootstrap.yml)

配置解析

 实现成功

 1.3、Config客户端之动态刷新

为什么要用动态刷新

 解决:

在3355端口

 添加依赖

 添加yml配置文件

 在控制类中添加新注解

 需要多做一步控制类的注解才会生效

 多个端口的情况

 需要用到消息总线(服务总线)的功能可以解决

八、服务总线

这是七里的问题

 1、Bus

1.1、概述

1.2、RabbitMQ环境配置

自行安装Rabbit MQ

1.3、Spring Cloud Bus动态刷新全局广播

设计思想

1):

2):

 选择:

 使用:

 3344端口:

添加依赖

 配置yml文件(application.yml)

15672是rabbit的web管理页面的端口,5672才是rabbit的默认服务端口

记得rabbitmq前面有空格,并且在spring下面

 3355、3366端口:

添加依赖

 配置yml文件(bootstrap.yml)

 刷新

1.4、Spring Cloud Bus动态刷新定点通知

九、消息驱动

1、Spring Cloud Stream

 

 

1.1、消息驱动生产者

8801端口

添加依赖

配置yml文件

 建service

 建controller

1.2、消息驱动消费者 

8802和8803端口

引入依赖

 配置yml文件

 写controller类

 

 1.3、分组消费和持久化

 重复消费的问题,以及解决

 

 分组,不同组会造成重复消费

修改yml文件

 

 同组不会造成重复消费

 

 解决持久化问题

原因

 

 解决方案还是yml配置gruop分组属性

十、分布式请求链路跟踪

1、SpringCloud Sleuth

1.1、概述

1.2、搭建链路监控步骤

第一步:下载zipkin,并运行

 

解释上图

 第二步:在8001和80端口引入依赖、配置yml文件

 

 第三步:查看

十一、SpringCloud Alibaba(后面几章的内容都是围绕Alibaba)

1、能干什么

 2、使用

引入依赖

十一、Nacos服务注册和配置中心(Alibaba)

 

 切换模式的命令

 1、安装 

2、服务注册的使用 

新建9001和9002端口(服务提供者)

添加依赖

 配置yml文件

 主启动类添加注解

 新建83端口(服务消费者) 

添加依赖

配置yml文件

 主启动类添加注解

  

 运行效果

 3、配置中心的使用

 新建3377端口

添加依赖

配置yml文件(bootstrap配置全局配置、application配置自己的配置)

 bootstrap

application

主启动类添加注解

 controller类

 在配置中心配置yml文件

 3.1、多环境多项目管理

 分组

 命名空间 

 

 配置yml文件

 3.2、Nacos集群和持久化配置

 

 持久化配置

 

 Linux配置nacos集群

 

 

 修改startup.sh文件

 执行 

 

 总结

十二、Sentinel实现熔断与限流(Alibaba)

 1、安装运行

 运行

 2、使用

创建8401端口

添加依赖 

 配置yml文件

 主启动类添加注解

 总结

 3、流控规则

 

预热

  

 4、降级规则

 

 

 

5、热点key限流

配置:资源名与@SentinelResource的value属性同名

 另一种情况

 配置

 

6、系统规则

7、@SentinelResource(兜底方案)

注意:该注解不支持private方法

自定义兜底方案

 解决代码膨胀

 

8、服务熔断功能 fallback

 

8.1、 Sentinel整合Ribbon

 fallback只负责运行时异常

忽略属性

 8.2、Sentinel整合Feign

84端口

添加依赖

 配置yml文件

 主启动类添加注解

 service层

 8.3、总结:熔断框架区别

 9、持久化规则

 配置8401端口

添加依赖

 配置yml文件

 添加Nacos业务规则配置

十三、Seata处理分布式事务(Alibaba)

 

 1、Seata-Server安装和修改配置

 service模块

 store模块

在seata库建表

 修改registry.conf配置文件

 

 先启动nacos再启动seata

2、使用 

 创建数据库和表

 

 创建业务模块

订单端口2001

 库存2001端口

账号2002端口

添加依赖

 配置yml文件

 

添加file.conf文件,并将seata的file.conf文件拷贝进来 

 

 添加registry.conf文件,并将seata的registry.conf文件拷贝进来

 主启动类

 

 测试

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值