赞
踩
可以自己创建IRule接口,然后再通过配置类或者配置文件即可,通过定义IRule实现可以修改负载均衡规则,有两种方式:
服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式,用户确保服务不会受请求突增影响变得不可用,确保服务不会崩溃
如果降级太多则会触发熔断
Hystrix熔断机制,用于监控微服务调用情况,默认是关闭的,如果需要开启需要在引导类上添加注解:@EnableCircuitBreaker,如果检测到10秒内请求的失败率超过50%,就触发熔断机制。之后每隔5秒重新尝试请求微服务,如果微服务不能响应,继续走熔断机制。如果微服务可达,则关闭熔断机制,恢复正常请求。
一个分布式系统的应用程序性能监控工具(Application Performance Management),提供了完善的链路追踪能力,apache的顶级项目
配置文件中,微服务路由设置添加局部过滤器RequestRateLimiter
漏桶与令牌桶的区别:漏桶的速率绝对固定,令牌桶的速率会变化
分布式系统有三个指标:
Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须保持一致
Availability(可用性):用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝
Partition(分区):因为网络故障或其他原因导致分布式系统中的部分节点与其他节点失去连接,形成独立分区。
Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务
结论:
BASE理论是对CAP的一种解决思路,包含三个思想:
Seata事务管理中有三个重要的角色
RM一阶段的工作:
1. 注册分治事务到TC
2. 执行分支业务sql但不提交
3. 报告执行状态到TC
TC二阶段的工作:
1. TC检测各分支事务执行状态
2. 如果都成功,通知所有RM提交事务
3. 如果有失败,通过所有RM回滚事务
RM二阶段的工作:
1. 接收TC指令,提交或回滚事务
AT模式同样是分阶段提交的模型,不过却弥补了XA模型中资源锁定周期过长的缺陷
阶段一RM工作:
1. 注册分支事务
2. 记录undo-log(数据快照)
3. 执行业务sql并提交
4. 报告事务状态
阶段二提交时RM的工作
1. 删除undo-log
阶段二回滚时RM的工作
1. 根据undo-log恢复数据到更新之前
幂等:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单词调用的结果一致。
需要幂等场景:
基于RESTful API的角度对部分常见请求类型的幂等性特点进行分析:
请求方式 | 说明 |
---|---|
GET | 查询操作,天然幂等 |
POST | 新增操作,请求一次与请求多次造成的结果不同,不是幂等的 |
PUT | 更新操作,如果是以绝对值更新,则是幂等的。如果是通过增量的方式更新,不幂等 |
DELETE | 删除操作,根据唯一值进行删除,是幂等的 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。