微服务学习笔记--高级篇--(初始Sentinel)

目录:

  • 初始Sentinel
  • 流量控制
  • 隔离和降级
  • 授权规则
  • 规则持久化

初始Sentinel

  • 雪崩问题及解决方案
  • 服务保护技术对比
  • Sentinel介绍和安装
  • 微服务整合Sentinel

雪崩问题

微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。

解决雪崩问题的常见方式有四种:

  • 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待
  • 舱壁模式:限定每个业务都使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离。
  • 熔断降级:有断路器同级业务执行的异常比例,如果超过阈值则会熔断该业务,拦截访问该业务的一切请求。
  • 流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。

流量控制是预防雪崩,前面三种是已经有服务故障了,怎么避免故障传递到其它服务。而流量控制是限制QPS,避免出现故障。

小结

什么是雪崩问题?

  • 微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。

如何避免因瞬间高并发流量而导致服务故障?

  • 流量控制

如果避免因服务故障引起的雪崩问题?

  • 超时处理
  • 线程隔离
  • 降级熔断

服务保护技术对比

Sentinel Hystrix
隔离策略 信号量隔离 线程池隔离/信号量隔离
熔断降级策略 基于慢调用比例或异常比例 基于失败比率
实时指标实现 滑动窗口 滑动窗口(基于 RxJava)
规则配置 支持多种数据源 支持多种数据源)
扩展性 多个扩展性 插件的形式
基于注解的支持 支持 支持
限流 基于QPS,支持基于调用关系的限流 有限的支持
流量整形 支持慢启动、均速排队模式 不支持
系统自适应保护 支持 不支持
控制台 开箱即可用,可配置规则、查看秒级监控、机器发现等 不支持
常见框架的适配 Servlet、Spring Cloud、Dubbo、gRPC等 Servlet、Spring Cloud Netflix

认识Sentinel

Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinnelguard.io/zh-cn/index.html

安装Sentinel控制台

sentinel官方提供了UI控制台,方便我们对系统做限流设置。可用在GitHub下载。也可以用资料提供的jar包:sentinel-dashboard-1.8.1.jar

1.将其拷贝到非中文目录,然后运行命令:

java -jar sentinel-dashboard-1.8.1.jar

2.然后访问:localhost:8080即可看到控制台页面,默认的账号和密码都是sentinel

如果要修改Sentinel的默认端口、账号、密码,可以通过下列配置:

配置项 默认值 说明
server.port 8080 服务端口
sentinel.dashboard.auth.username sentinel 默认用户名
sentinel.dashboard.auth.password sentinel 默认密码

举例说明:java -jar sentinel-dashbord-1.8.1.jar -Dserver.port=8090


引入cloud-demo

要使用Sentinel要结合微服务,使用实用篇中的csloud-demo工程。

项目结构如下:

cscloud-demo:gateway、user-service 用户服务,包含用户的CRUD、order-service 订单服务,调用user-service、feign-api 用户服务对外暴露的feign客户端、实体类

微服务整合Sentinel

我们在order-service中整合Sentinel,并且连接Sentinel的控制台,步骤如下:

1.引入sentinel依赖:

<!--sentinel-->
<dependency>
	<groupId>com.alibaba.cscloud</groupId>
	<aitifactId>spring-cscloud-starter-alibaba-sentinel</aitifactId>
</dependency>

2.配置控制台地址:

spring:
  cloud:
    sentinel:
      transport:
        dashbord: localshost:8080

3.访问微服务的任意端点(任意一个springmvc的controller接口),触发sentinel监控

猜你喜欢

转载自blog.csdn.net/weixin_42594143/article/details/130951192
今日推荐