# cloud **Repository Path**: namdev/cloud ## Basic Information - **Project Name**: cloud - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-01-15 - **Last Updated**: 2022-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Cloud + Spring Cloud Alibaba #### **组件介绍** **eureka:** 单机eureka、集群eureka resttemplate + @loadbalance 负载均衡 调用 **zookeeper:** linux docker部署zookeeper,配置注册地址 resttemplate + @loadbalance 负载均衡 调用 **consul:** 命令本地启动consul,8500端口页面 resttemplate + @loadbalance 负载均衡 调用 **Ribbon:** Irule配置或自定义负载均衡算法,@Ribbonclient配置调用的服务和算法 手写轮询算法,CAS锁 **Openfeign:** 接口注解调用,默认支持ribbon自带负载均衡 ribbon超时控制,日志显示 **Hystrix:** 服务降级:@HystrixCommand,调用中出现错误、超时、宕机等,启用兜底方法,fallback方法分离 服务熔断:配置熔断情况,时间窗口,请求阈值,错误百分比阈值等,half open hystrixDashboard可视化监控,监控服务访问 **Zuul、Gataway:** 路由转发、断言匹配、执行过滤器链,支持负载均衡 作为中转站进行路由映射,过滤器生命周期pre、post,常用过滤器:请求头、参数匹配等,自定义过滤器 **Config:** 服务端实时获取Github配置,文件配置映射,生产模式配置,客户端父子配置文件,设置文件映射和配置中心 Post请求动态刷新客户端配置 **Bus:** 支持RabbitMQ和kafka,自动进行消息监听配置中心变化,全局订阅实现配置更新,称为消息总线 加入bus依赖,rabbitmq配置,自动监听,一次发送处处生效 定点刷新,post附带服务端端口号 **Stream:** 统一底层差异,设置生产者、消费者、监听进行消息发送 分组消费,配置group,支持消息持久化 **Sleuth:** zipkin可视化监控,本地命令启动,全局链路id关联调用链路 配置zikpin地址,采样率设置 **Nacos:** nacos服务注册中心,本地命令启动,支持CP、AP切换 作为配置中心,加入配置匹配格式,配置名称空间,分组等进行匹配,自带动态刷新 namespace:环境、group:分组,不同微服务模块、service:微服务模块、cluster:集群,杭州虚拟划分,实现容灾,instance:微服务实例 持久化配置,默认嵌入式数据库derby,连接到mysql即可 nacos集群,linux docker部署,请求到Nginx集群,nacos集群,底层db集群 **Sentinel:** sentinel可视化控制台,本地命令启动,yaml配置地址,默认懒加载 流控规则, 统计规则:慢调用比例,异常比例、异常数, 流控模式:直接、关联,关联的资源达到阈值限流自己、链路,统计指定资源到当前资源,对请求来源限流, 流控效果:直接、预热,阈值从冷启动因子经过预热时长后达到正常阈值,秒杀应用、排队等待,匀速排队,阈值必须为qps,处理间隔突发的流量 服务降级,降级策略:RT平均响应时间、异常比例、异常数,分钟统计,支持半开状态 热点key限流,支持参数索引,排除特殊参数。系统规则,全局限流 @SentinelResource,blockhandler:限流兜底方法,自定义限流处理逻辑,代码分离 服务熔断,整合ribbon,加上fallback即可,整合feign,消费者侧接口注解处fallback 规则持久化,yaml配置datasource,地址指向nacos,文件匹配 **seata:** ID+三组件,TC全局事务协调器,TM事务提交回滚,RM分支事务、分支注册、状态汇报等 seata service本机命令启动,配置文件,数据库,nacos地址 mysql建表,seata事务表,业务数据库回滚日志表 微服务配置,文件nacos匹配,yaml配置,seata代理数据库,@GlobalTransactional,异常回滚 执行流程:一阶段加载:解析sql语句找到业务数据保存为before image,执行业务sql,保存after iamge,生成行锁,二阶段提交:顺利提交,seata删除快照和行锁,完成数据清理即可,二阶段回滚:回滚执行的业务sql,通过一阶段回滚日志进行反向补偿,用before image还原业务数据,脏写校验,对比当前和after image **分布式全局唯一id:** UUID,入库性能差、数据库自增主键,B+树索引分裂、reids集群增长步长,需要维护,雪花算法 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)