服务注册中心nacos
主要是为服务提供者提供注册,为服务注册者提供获取
还有维护心跳等功能
负载均衡组件ribbon
通过从nacos中 拉取到的服务列表通过自定义的一些算法比如轮询选出服务消费列表中一个ip
服务调用feign
主要为调用nacos创建一个动态代理,通过直接调用服务提供者接口的方式来调用远程服务,从而避免了硬编码的编写服务地址
限流熔断sentinel
主要做流量控制,失败防止雪崩,当失败调用次数超过设定值时会打开断路器,后面的调用直接返回,等待一定时间后,再尝试一次调用,这也叫做断路器半开状态,如果可以了,那就恢复正常调用,如果还不行,继续进入断路状态,以此类推.
分布式事务seata
两阶段提交
第一阶段准备,其实就是在执行本地事务前把执行事务前的状态数据和执行事务后的状态数据都保存一份到undolog中,提交对事务涉及到的数据加上分布式锁,然后执行本地事务,最后返回本地事务的执行情况
第二阶段提交或回滚,
如果是收到提交命令的话,就是将提交的消息放进异步队列,马上返回成功,消费程序则把对应的undolog删除
如果收到tc的回滚命令的话,新建一个本地事务,利用之前保存的undolog 构造还原语句,执行还原操作,返回执行事务结果
网关gateway
结合nacos通过为客户端应用对应的断言和过滤器路由到对应的微服务上面,统一解决跨域,异常处理等问题
结合sentinel实现限流
安全oauth2
通过添加依赖
加入注解标识为认证服务器
并编写对应的认证类来实现标识那些服务可以来获取token并根据传入的相关信息来验证返回对应的token或用户信息