# 网关 **Repository Path**: fzjlovely/tgit-gateway ## Basic Information - **Project Name**: 网关 - **Description**: 全能型网关 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 1 - **Created**: 2018-11-07 - **Last Updated**: 2021-04-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网关 #### 项目介绍 有以下功能: 网关任务 1. 支持自定义路由-redis读取路由 支持redis单机,集群。 2. 支持自定义路由-ehcache读取 3. 支持自定义路由-yml,properties读取 4. 流程分析: 4.1 启动初始化API路由,API-server 4.2 提供注册中控台(见API开放平台) 4.3 提供app健康度 4.4 提供数据报表维护 5. 认证,授权(基本业务逻辑) 6. 限流(redis-lua) 7. 负载均衡(ribbon) 8. 熔断(负载均衡错误拦截) 9. 异步非阻塞路由 10. 控制台异步日志 11. API请求过程日志定时存库 12. 网关刷新API注册接入,网关API更新,网关API启用和禁用 13. 提供API开放平台数据库结构分析 代码基本写完,单工程项目去掉spring-cloud微服务注册中心思想。 本人也是研究了很多,看完了spring-cloud-gateway的源码,整编出了他的文档,了解他的内容, spring-cloud-gateway很多功能都依赖spring-cloud的其他相关包,对于一个网关工程,提供分模块的pom工程 对此,我不想这样,所以我把相关流程需要的包都集成进来,形成一个完整的网关验证流程链。 不仅如此,我提供了网关刷新API注册接入,网关API更新,网关API启用和禁用,网关监控数据保存等功能 本套网关价值比较高,奢侈开源!本套网关个人看来较为全能,提供一般企业解决方案! 当然还有一部分我想到了,但还未写上去,比如ribbon做负载均衡之外,如何不让他负载均衡,直接轮询api-server, 最后都走不通,才跳转到断路器?但是这样合理吗?这都是要去思考和验证,怎么才能更合理 #### 软件架构 软件架构说明 技术架构: 1. spring boot 2.x 2. spring-cloud-gateway 3. netflix-ribbon 4. netflix-hystrix 5. mysql,druid 6. redis+lua/ehcache 7. actuator,aop 8. netty 业务架构:
#### 安装教程 1. 安装mysql,导入gateway.sql,注意,工具不兼容,请手动创建函数 2. 安装redis 3. 将工程导入eclipse 4. 配置application.properties的数据库配置和缓存配置 #### 使用说明 1. 使用的是mysql数据库 2. redis在此网关作用:限流,缓存 3. DB分析
4. 业务分析
5. 网关源码分析 https://gitee.com/fzjlovely/tgit-gateway/raw/master/image/spring-cloud-gateway.pdf https://gitee.com/fzjlovely/tgit-gateway/raw/master/image/spring-cloud-gateway.xmind 6. 测试分析 1. 第一步-借助apizza工具
2. 网关路由获取测试 url:http://192.168.0.23:9000/queryRoutes accessToken:zOJfLtKVYpomrsIXt/ysdAp4i/BnFhKIQcqXcrL/dzA= 3. 首先执行认证和授权,对访问URI和ACCESSTOKEN进行判断
4. 自动负载均衡(暂时用的RandomRule策略,可配) 5. 错误情况熔断114处理
        {
            "code": 200,
            "message": "地址不通熔断返回  ",
            "appCode": "0"
        }
6. 正确情况
路由ID是随机生成的,每次启动都会更新。 每次重载都回更新 #### 参与贡献 1. fzj读你 2. qq群:132959169 3. 二维码扫加群:
#### 个人专场 1. 全能型网关: https://gitee.com/fzjlovely/tgit-gateway.git 2. java培训案例: https://gitee.com/fzjlovely/basic_example.git https://gitee.com/fzjlovely/Java_training_zone.git 3. 统一配置中控台: https://gitee.com/fzjlovely/tgit-conf.git 4. nginx总结 https://gitee.com/fzjlovely/nginx.git 5. tomcat8全面分析: https://gitee.com/fzjlovely/tomcat8.git 6. spring-cloud-gateway分析: https://gitee.com/fzjlovely/tgit-gateway/raw/master/image 7. 资料汇总: https://gitee.com/fzjlovely/driver.git 8. 单点登录: https://gitee.com/fzjlovely/tgit-sso.git 部分资料未上传,资料信息太大,上传较慢,见谅!