nacos:服务注册中心
原理就是:发送各种http请求,异步注册
双层map的注册表,没有加锁,CopyOnWrite思想 —— 读写分离;复制一个副本,在内存中,进行注册表修改,为了支撑高并发
有客户端的健康感知,通过心跳机制
实际就是一个Springboot 的 web项目,提供各种http接口(依赖ribbon)默认端口8848
ribbon:服务发现
核心拦截器:LoadBalancerInterceptor
。底层拦截器,定时轮询拉取,负载均衡
Feign:生成代理
然后通过代理拼接url -> 调用远端接口转化为类似于dubbo的调用本地接口(依赖ribbon)
Sentinel:服务降级
可以在@FeignClinet(value = "credit-servce" ,fallback = CreditServiceFallback.class)
配置fallback
dashboard管理页面,默认8080端口,可以实现流控
服务限流(可用redis限流)
熔断(发现出问题,直接掐断,不在还访问报错的接口了,不访问原接口,直接降级)
滑动时间窗算法:metric机制,线上系统运行监控。
Seata:分布式事务中间件
@GlobalTransactional
基于mysql的undo回滚日志。失败反向补偿
蚂蚁金服用的多,阿里用的不多。因为锁太多,强一致
如果不用seata,可以使用MQ
实现
restful风格:CRUD一个地址,根据GetMapping、PostMapping、DeleteMapping