# gitbook **Repository Path**: zhf3110/gitbook ## Basic Information - **Project Name**: gitbook - **Description**: 学习文档 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-07-18 - **Last Updated**: 2022-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网关开发介绍 网关项目作为互联网与内网交换数据的中间层,可以提供访问的安全校验、报文加解密、身份认证、限流、控制准入等功能;从而保证外网访问内网系统的安全。spring cloud gateway作为全新的网关框架,基于webflux响应式编程,提供异步非阻塞的方式,能更好的在同等资源下提供较大的请求处理。 ### 1. 项目架构及代码结构 #### 1.1 项目功能结构 ![image-20200526141337391](image\捕获.PNG) 项目的架构是基于maven聚合功能,架构的思路参考spring cloud的初衷,及将spring cloud gateway作为整个系统的入口,而将各个功能模块分布到不同的微服务中,如此提供更好的性能服务。 ### 2. 项目模块介绍 - admin `spring adming 监控系统,用来监控其他模块的内存等数据` - bea-gateway-web - bea-gateway-web `网关内管平台的前置入口,所有页面的数据的增删改都需要在前置中通过注册中心调用其他微服务模块` - gateway-channel-security `用户认证、授权,系统基本数据信息维护模块` - gateway-channel-web `前置系统的入口,其次提供页面功能接口` - bea-gateway-core `网关核心项目,所有请求内网或互联网系统接口的代理` - gateway-core `网关入口、动态路由、限流控制、报文转换、协议转换等`, - gateway-core-common `oauth2认证、api资源及权限、准入控制等功能` - gateway-core-remote `调用第三方微服务,加载初始数据` - bea-gateway-server `各个功能微服务模块` - gateway-baffle-server `挡板服务模块,提供http、https下响应报文;tcp、rpc响应报文` - gateway-common-server `公共依赖模块` - gateway-convert-server `报文转换功能模块` - gateway-eureka-server `服务注册中心` - gateway-manage-server `提供动态路由、api接口管理、准入管理、限流管理、服务组等数据的维护` - gateway-oauth2-server `oauth2认证授权中心` - gateway-safe-server `加密、加签、验签功能` - gateway-web-common `网关模块,web模块、server模块的公共类` ### 3. 项目功能介绍 网关项目目前实现的功能概括为以下 - 动态路由 - 集群负载 - 服务检查 - oauth2认证/授权 - 加/验签 - 加/解密 - 报文转换 - 协议转换 #### 3.1 动态路由 动态路由的数据从页面录入,选中一个配置好的服务组,并配置对应的断言和过滤器,数据在录入数据库的同时并发布到对应的订阅系统。 ##### 3.1.1 页面数据如下 ![image-20200528141224642](image\4944B157-AA19-4428-959B-04D78F301F89.png) 新增后发布一个`ADD_ROUTE_TOPIC`事件,会调用**gateway-core**模块中的`ListenerRouteHandler.addRoute()`