# spring-cloud-example **Repository Path**: zhengcan666/spring-cloud-example ## Basic Information - **Project Name**: spring-cloud-example - **Description**: 一整套微服务所学 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2024-04-16 - **Last Updated**: 2024-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-cloud-example #### 介绍 一整套微服务所学 #### 软件架构 软件架构说明 1. Gatewey:网关路由,主要接受外部http请求后路由转发到服务端,存在好处:可以统一对外暴露端口,可统一在上层进行权限校验、白名单校验、对接口进行容错限流有效保护后台服务,这里我们主要以spring-cloud-gateway作为研究对象 2. 权限认证:用户访问后台服务需要统一做鉴权认证,我们把这块功能提出来在网关层统一做,可以减少重复校验,较少业务端代码复杂性(一定要确保所有服务经过网关对外暴露,如果不经过网关就等于裸奔),这里主要以spring-security为例 3. 配置中心:系统变更配置后不需要重启,可实时生效,常用于变更比较频繁如开关等,这里以Apollo为例 4. 注册中心:统一存取服务配置(IP/Port)等信息,与服务之间保持心跳同步配置信息,实现服务无限水平扩展,Eureka 5. 分库分表:数据量达到一定程度,单库/单表已经不能满足正常业务,需要将数据分片到多个数据库/表,Sharding-jdbc 6. 链路跟踪:微服务系统拆分到一定粒度后,服务之间调用错综复杂,需要一条链路将整个调用链路串联起来,方便快速定位问题,Cat 7. 日志收集:服务集群部署后,日志量大且分散,需要统一收集并时间序列展示,方便日志定位,ELK 8. 服务治理:服务拆分到一定数量,部署变得很复杂,需要自动部署发布,解放人工,Rancher 9. 分布式事务:同一个请求需要操作不同系统的不同库表,数据一致性难已保证,分布式事务实现方案 10. 容错限流:当遇到访问量突发事件(恶意攻击,抢购)达到系统承受峰值时,能触发策略保证服务始终正常运行不被压垮,Hystrix #### 安装教程 1. 启动eureka 2. 启动redis 3. 启动gateway #### 使用说明 1. jdk1.8 2. 依赖redis:用于限流 3. spring-boot:2.2.1;spring-cloud:Hoxton.RC2 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request 公众号关注一波 ![](5cm.jpg)