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
请确保是在环境中安装使用:
- 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。
- 64 bit JDK 1.8+;下载.配置。
- Maven 3.2.x+;下载.配置。
- 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
- 需要我们程序员自己手工搭建监控平台
- 没有一套web界面可以给我们进行更加细粒度化得配置流控、速率控制、服务熔断、服务降级
- Sentinel
- 单独一个组件,可以独立出来。
- 直接界面化的细粒度统一配置。
约定 > 配置 > 编码
都可以写在代码里面,但是我们本次还是大规模的学习使用配置和注解的方式,尽量少写代码
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 曲线如下图所示:
![]()
link
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!