spring could的学习

一.Nacos注册中心

1.运行流程:服务提供暴露接口,在注册中心进行注册,同时通过心跳检测实时的报告服务的健康状态,若服务宕机,则注册中心会将此服务剔除,同时向消费者进行通知推送。

2.nacos对微服务进行配置管理

2.1.在nocos界面的配置管理中添加配置(如:jdbc、swagger等共享的配置)

2.2.拉取共享配置代替微服务的本地配置

步骤:

二.OpenFeign远程调用

OpenFeign是一个声明式的Http客户端,其底层是基于SpringMVC

快速入门:

OpenFeign连接池:

OpenFeign的最佳实践:

将对外暴露接口的client全都封装到一个公共模块中,耦合会有一点点高。

在公共模块下扫描不到OpenFeign的client时,可以使用注解@EnableFeignClients来指定

三.SpringClould gateway 网关:

1.路由断言:也就是路由匹配规则

spring提供的12种断言方式,其中根据请求路径的最常用:

2.网关登录校验

网关过滤器有两种:

GatewayFilter:路由过滤器,作用范围灵活,作用于任意指定的路由

GlobalFilter:全局过滤器,作用范围是所有路由

自定义过滤器:

3.网关校验完用户之后,怎么从网关将用户信息传递到微服务中?

答:步将用户id存入到请求头当中,然后编写一个拦截器,截获请求头当中的用户id即可。

4.在使用Feign进行微服务之中的调用时,该怎么去传递用户信息呢?

四.微服务雪崩

概念:微服务雪崩是指微服务调用链路中的某个服务故障,导致整个链路中的所有微服务都不可用。

解决方案:

五.服务保护

1.服务保护的方案:

1.1.请求限流(预防服务崩):限制访问接口的请求的并发量(QPS),避免服务因流量激增出现故障。

1.2.线程隔离(服务已甭):通过限定每个业务能使用的线程数量而将故障业务隔离,避免故障扩散。 

1.3.服务熔断:由熔断器统计请求的异常比例或慢调用比列,如果超过阈值则熔断该业务,拦截该接口的请求。熔断期间,所有请求快速失败,全部走fallback(服务失败调用的方法)逻辑。

2.服务保护技术(Sentinel):

Sentinel是阿里巴巴开源的一款微服务流量控制组件。
Sentinel快速入门:
1.去Sentinel下载Sentinel的jar包
2.Sentinel的控制台启动命令:

java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar jar包名

3.Spring整合Sentinel:
3.1添加依赖
3.2在配置文件中配置Sentinel地址
spring:
  main:
    allow-circular-references: true  #允许循环依赖
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8090 #控制台地址
      http-method-specify: true #开启请求方式前缀(如:get请求,post请求)
3.3 Sentinel限流规则:

在Sentinel控制台中找到簇点链路,找到要限流(流控)的请求。

3.4.线程隔离(微服务和微服务之间的)

3.5服务熔断后的Fallback

3.6 sentinel持久化(缺点:无法和控制台保持实时变化,不常用):写入nacos中,利用nacos去拉取

步骤1:引入nacos和sentinel的相关依赖

<!-- 利用nacos进行sentinel持久化-->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
    <version>版本要和本机的sentinel版本一致</version>
</dependency>

步骤2:在nacos中编写配置文件

步骤3:拉取配置

六.Seata管理分布式事务

1.分布式事务概念:

2.Seate

2.1分布式事务的解决思路:各个子事务之间感知彼此的事务状态,以达到状态一致

七.RabbitMQ

1.使用场景:异步处理、应用解耦、流量控制

1.1异步调用其实就是基于消息通知,一般包含四个角色:

消息发送者:投递消息的人,就是原来的调用方

消息代理(交换机和队列):管理、暂存、转发消息

消息接收者、队列

一般是消息发送者发送消息给交换机,交换机再转发给其绑定的队列,最后由消费者去消费消息。

注意:交换机没有存储消息的能力!

2.Spring整合RabbitMq,spring提供了一个RabbitTemplate

3.SpringAMQP如何收发消息?

4.如何解决消息堆积问题:

交换机

1.类型:Fanout广播、Direct定向、Topic话题

交换机的作用:

Direct交换机

Topic交换机

Direct交换机和Topic交换机的区别:

在java中声明交换机和队列

消息转换器:

消息可靠性解决:

1.MQ的可靠性

2.Lazy Queue(惰性队列)

3.消费者如何保证消息一定被消费

4.如何保证业务幂等性

延迟消息:

死信交换机:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值