栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

微服务之Sentinel-第一章-初识入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

微服务之Sentinel-第一章-初识入门

Sentinel概述

Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。
Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。

Sentinel核心分为两个部分:

核心库(Java 客户端):能够运行于所有 Java 运行时环境,同时对Dubbo /Spring Cloud 等框架也有较好的支持。
控制台(Dashboard):基于 Spring Boot 开发,打包后可以直接运行。

一、雪崩问题

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

1、解决雪崩问题的常见方式有四种 超时处理(服务故障处理)

设定超时时间,请求超过一定时间没有相应就返回错误信息,不会无休止的等待。
该方法只能缓解,不能根本解决问题。

舱壁模式(服务故障处理)

限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离

熔断降级(服务故障处理)

有断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。

流量控制(瞬间高并发预防)

显示业务访问的QPS,避免服务因流量的突增而故障。
属于预防手段。

2、总结 什么是雪崩

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

如何避免因瞬间高并发流量而导致服务故障
  • 流量控制
如何避免因服务故障引起的雪崩问题
  • 超时处理
  • 线程隔离
  • 降级熔断
二、 服务保护技术对比

三、认识Sentinel

Sentinel是分布式系统的流量卫兵,Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。是阿里巴巴开源的一款微服务流量控制组件。
官网地址:https://sentinelguard.io/zh-cn/index.html
Sentinel具有以下特征:

四、安装Sentinel 1、方法一:使用jar 下载

访问官网:https://github.com/alibaba/Sentinel/releases

sentinel-dashboard-1.8.4.jar

运行

端口默认是8080

java -jar sentinel-dashboard-1.8.4.jar
# 设置参数尤其是指定端口,必须两个都指定
nohup  java -Dserver.port=8858 -Dcsp.sentinel.dashboard.server=localhost:8858 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.4.jar &

命令详解:

1.nohup command &  #在后台运行
2.-Dserver.port=8858 #设置sentinel dashboard服务端口是8858
3.-Dcsp.sentinel.dashboard.server=localhost:8858 :# 指定要被哪个控制台监控(这里指定的是自己监控自己)
4.-Dproject.name=sentinel-dashboard # 指定实例名称(名称会在控制台左侧以菜单显示) 
#5,6不设置的时候初始账号密码都是sentinel
5.-Dsentinel.dashboard.auth.username=sentinel # 设置登录的帐号为:sentinel 
6.-Dsentinel.dashboard.auth.password=123456 # 设置登录的密码为:123456
新建start.bat

@echo off

cd E:Program FilesJavajdk1.8.0_131bin

java -jar -Xms256m -Xmx256m -Dserver.port=8858 -Dcsp.sentinel.dashboard.server=127.0.0.1:8858 E:devsentinelsentinel-dashboard-1.8.4.jar
pause
访问

localhost:8080,默认的账号密码是sentinel

修改端口、账号、密码

2、方法二:docker安装

参考:https://blog.csdn.net/Blueeyedboy521/article/details/124599844
docker run --name sentinel -p 8858:8858 -d bladex/sentinel-dashboard:latest

五、微服务整合sentinel 1.引入sentinel依赖:


    com.alibaba.cloud
    spring-cloud-starter-alibaba-sentinel

2. 配置控制台地址
spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8080 # sentinel控制台地址
3.访问微服务的任意端点,触发sentinel监控

比如访问http://localhost:8088/order/101
如果出现sentinel 簇点链路为空白–不显示资源

sentinel 必须跟微服务处在同一个局域网中。
因为 sentinel 机器列表里显示的服务IP地址为内网地址。
(While Nacos 可以在内网,也可以在外网)

正确的如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871566.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号