Spring Cloud 学习笔记(3 3)

Spring Cloud 学习笔记(1 / 3)

Spring Cloud 学习笔记(2 / 3)

108_Nacos之Linux版本安装

109_Nacos集群配置(上)

110_Nacos集群配置(下)

111_Sentinel是什么

112_Sentinel下载安装运行

113_Sentinel初始化监控

114_Sentinel流控规则简介

115_Sentinel流控-QPS直接失败

116_Sentinel流控-线程数直接失败

117_Sentinel流控-关联

118_Sentinel流控-预热

119_Sentinel流控-排队等待

120_Sentinel降级简介

121_Sentinel降级-RT

122_Sentinel降级-异常比例

123_Sentinel降级-异常数

124_Sentinel热点key(上)

125_Sentinel热点key(下)

126_Sentinel系统规则

127_SentinelResource配置(上)

128_SentinelResource配置(中)

129_SentinelResource配置(下)

130_Sentinel服务熔断Ribbon环境预说

131_Sentinel服务熔断无配置

132_Sentinel服务熔断只配置fallback

133_Sentinel服务熔断只配置blockHandler

134_Sentinel服务熔断fallback和blockHandler都配置

135_Sentinel服务熔断exceptionsToIgnore

136_Sentinel服务熔断OpenFeign

137_Sentinel持久化规则

138_分布式事务问题由来

139_Seata术语

140_Seata-Server安装

141_Seata业务数据库准备

142_Seata之Order-Module配置搭建

143_Seata之Order-Module撸码(上)

144_Seata之Order-Module撸码(下)

145_Seata之Storage-Module说明

146_Seata之Account-Module说明

147_Seata之@GlobalTransactional验证

148_Seata之原理简介

149_大厂面试第三季预告片之雪花算法(上)

150_大厂面试第三季预告片之雪花算法(下)

Spring Cloud组件总结

108_Nacos之Linux版本安装

预计需要,1个Nginx+3个nacos注册中心+1个mysql

请确保是在环境中安装使用:

  1. 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。
  2. 64 bit JDK 1.8+;下载.配置。
  3. Maven 3.2.x+;下载.配置。
  4. 3个或3个以上Nacos节点才能构成集群。

link

Nacos下载Linux版

  • https://github.com/alibaba/nacos/releases/tag/1.1.4

  • nacos-server-1.1.4.tar.gz 解压后安装

109_Nacos集群配置(上)

集群配置步骤(重点)

1.Linux服务器上mysql数据库配置

SQL脚本在哪里 – 目录nacos/conf/nacos-mysql.sql

添加以下内容,设置数据源

3.Linux服务器上nacos的集群配置cluster.conf

梳理出3台nacos集器的不同服务端口 ,设置3个端口:

  • 3333
  • 4444
  • 5555

复制出cluster.conf

/mynacos/nacos/bin目录下有startup.sh

110_Nacos集群配置(下)

5.Nginx的配置,由它作为负载均衡器

修改nginx的配置文件 – nginx.conf

按照指定启动

  • 新建后,可在linux服务器的mysql新插入一条记录

    select * from config;

高可用小总结

link

—句话解释,之前我们讲解过的Hystrix。

Hystrix与Sentinel比较:

  • Hystrix
    1. 需要我们程序员自己手工搭建监控平台
    2. 没有一套web界面可以给我们进行更加细粒度化得配置流控、速率控制、服务熔断、服务降级
  • Sentinel
    1. 单独一个组件,可以独立出来。
    2. 直接界面化的细粒度统一配置。

约定 > 配置 > 编码

都可以写在代码里面,但是我们本次还是大规模的学习使用配置和注解的方式,尽量少写代码

sentinel
英 [sentnl] 美 [sentnl]
n. 哨兵

112_Sentinel下载安装运行

官方文档

服务使用中的各种问题:

  • 服务雪崩
  • 服务降级
  • 服务熔断
  • 服务限流

Sentinel 分为两个部分:

  • 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。
  • 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。

安装步骤:

  • 下载

    • https://github.com/alibaba/Sentinel/releases
    • 下载到本地sentinel-dashboard-1.7.0.jar
  • 运行命令

    • 前提
      • Java 8 环境
      • 8080端口不能被占用
    • 命令
  • 访问Sentinel管理界面

    • localhost:8080
    • 登录账 密码均为sentinel

113_Sentinel初始化监控

启动Nacos8848成功

新建工程 – cloudalibaba-sentinel-service8401

POM

YML

主启动

业务类FlowLimitController

启动Sentinel8080 –

启动微服务8401

启动8401微服务后查看sentienl控制台

  • 刚启动,空空如也,啥都没有

114_Sentinel流控规则简介

基本介绍

测试

快速多次点击访问http://localhost:8401/testA

结果

返回页面 Blocked by Sentinel (flow limiting)

源码

com.alibaba.csp.sentinel.slots.block.flow.controller.DefaultController

思考

直接调用默认 错信息,技术方面OK,但是,是否应该有我们自己的后续处理似有个fallback的兜底方法

116_Sentinel流控-线程数直接失败

线程数:当调用该API的线程数达到阈值的时候,进行限流。

Postman模拟并发密集访问testB

postman里新建多线程集合组

Run – 大批量线程高并发访问B

Postman运行后,点击访问http://localhost:8401/testA,发现testA挂了

  • 结果Blocked by Sentinel(flow limiting)

HOMEWORK:

自己上机测试

118_Sentinel流控-预热

Warm Up

Warm Up()方式,即预热/冷启动方式。当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过”冷启动”,让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。详细文档可以参考 流量控制 – Warm Up 文档,具体的例子可以参见 WarmUpFlowDemo。

通常冷启动的过程系统允许通过的 QPS 曲线如下图所示:

Spring Cloud 学习笔记(3 3)

link

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月2日
下一篇 2022年7月2日

相关推荐