day45_java_基础巩固

简介: 自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!

服务熔断原理:

Closed:关闭状态(断路器关闭),所有请求都正常访问。

Open:打开状态(断路器打开),所有请求都会被降级。Hystix 会对请求情况计数,

当一定时间内失败请求百分比达到阈值,则触发熔断,断路器会完全关闭。默认失败比

例的阈值是 50%,请求次数最少不低于 20 次。

Half Open:半开状态,open 状态不是永久的,打开后会进入休眠时间(默认是 5S)。

随后断路器会自动进入半开状态。此时会释放 1 次请求通过,若这个请求是健康的,

则会关闭断路器,否则继续保持打开,再次进行 5 秒休眠计时。

(4)Feign: 远程调用组件

后台系统中, 微服务和微服务之间的调用可以通过 Feign 组件来完成.

Feign 组件集成了 Ribbon 负载均衡策略(默认开启的, 使用轮询机制), Hystrix 熔断器

(默认关闭的, 需要通过配置文件进行设置开启)

被调用的微服务需要提供一个接口, 加上@@FeignClient("url")注解

调用方需要在启动类上加上@EnableFeignClients, 开启 Feign 组件功能.

(5)Gateway: 路由/网关

对于项目后台的微服务系统, 每一个微服务都不会直接暴露给用户来调用的, 但是如果

用户知道了某一个服务的 ip:端口号:url:访问参数, 就能直接访问你. 如果再是恶意访问,

恶意攻击, 就会击垮后台微服务系统.因此, 需要一个看大门的大 boss, 来保护我们的

后台系统.

Gateway 支持过滤器功能,对请求或响应进行拦截,完成一些通用操作。

Gateway 提供两种过滤器方式:“pre”和“post”

pre 过滤器,在转发之前执行,可以做参数校验、权限校验、流量监控、日志输出、

协议转换等。

post 过滤器,在后端微服务响应之后并且给前端响应之前执行,可以做响应内容、

响应头的修改,日志的输出,流量监控等。

Gateway 还提供了两种类型过滤器

(一) GatewayFilter:局部过滤器,针对单个路由

1. GatewayFilter 局部过滤器,是针对单个路由的过滤器。

2. 在 Spring Cloud Gateway 组件中提供了大量内置的局部过滤器,对请求和响应

做过滤操作。

3. 遵循约定大于配置的思想,只需要在配置文件配置局部过滤器名称,并为其指定对

应的值,就可以让其生效.

(二) GlobalFilter :全局过滤器,针对所有路由.

1. GlobalFilter 全局过滤器,不需要在配置文件中配置,系统初始化时加载,并作用

在每个路由上。

2. Spring Cloud Gateway 核心的功能也是通过内置的全局过滤器来完成。

3. 自定义全局过滤器步骤:

1 定义类实现 GlobalFilter 和 Ordered 接口

2 复写方法

3 完成逻辑处理

(6)Spring Cloud Config

在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所

以需要分布式配置中心组件。在 Spring Cloud 中,有分布式配置中心组件 spring

Cloud Config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程

Git 仓库中.

相关文章
|
12月前
|
存储 边缘计算 安全
深入解析边缘计算:架构、优势与挑战
深入解析边缘计算:架构、优势与挑战
1829 209
|
前端开发 JavaScript
useReducer 钩子实战
【10月更文挑战第13天】在 React 中,`useState` 是常用的状态管理钩子,但面对复杂状态逻辑时,`useReducer` 提供了更结构化的方式。本文从基础到进阶介绍 `useReducer` 的使用方法、常见问题及解决方案,并通过计数器和表单组件的示例加深理解。
238 5
|
人工智能
AI生图美学在淘宝的实践应用(2)
AI生图美学在淘宝的实践应用
539 8
|
域名解析 存储 缓存
【域名解析DNS专栏】DNS缓存机制详解:如何提升域名解析速度
【5月更文挑战第21天】本文探讨了DNS缓存机制的原理及优化方法。DNS缓存是存储已解析域名与IP地址的临时数据库,能减少网络延迟,减轻服务器负担并提升用户体验。优化策略包括增加缓存容量,设置合理过期时间,使用智能DNS服务及定期清理缓存。文中还提供了一个Python示例,展示如何通过缓存提升域名解析速度。
1595 2
【域名解析DNS专栏】DNS缓存机制详解:如何提升域名解析速度
|
关系型数据库 MySQL 网络安全
【Django】执行python manage.py makemigrations报错的解决方案
【Django】执行python manage.py makemigrations报错的解决方案
|
缓存 NoSQL 前端开发
一文搞懂Go整合captcha实现验证码功能
一文搞懂Go整合captcha实现验证码功能
277 0
|
设计模式 Java 测试技术
单元测试运行原理探究
单元测试是软件开发过程中的重要一环,好的单测可以帮助我们更早的发现问题,为系统的稳定运行提供保障。单测还是很好的说明文档,我们往往看单测用例就能够了解到作者对类的设计意图。代码重构时也离不开单测,丰富的单测用例会使我们重构代码时信心满满。虽然单测如此重要,但是一直来都不是很清楚其运行原理,也不知道为什么要做这样或那样的配置,这样终究是不行的,于是准备花时间探究下单测原理,并在此记录。
378644 30
单元测试运行原理探究
|
存储 JSON 前端开发
QT Http协议
QT Http协议
313 0
|
SQL 关系型数据库 MySQL
企业实战(9)Mysql数据库实现主从同步,看这一篇就够了!
企业实战(9)Mysql数据库实现主从同步,看这一篇就够了!
697 0
|
JavaScript API
Vue3 —— 常用 Composition API(二)(hook 函数、toRef 和 toRefs)
Vue3 —— 常用 Composition API(二)(hook 函数、toRef 和 toRefs)
260 0