# quteenserver **Repository Path**: xyz_w/quteenserver ## Basic Information - **Project Name**: quteenserver - **Description**: quteen项目的后端服务 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-02 - **Last Updated**: 2023-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # quteenserver #### 1.项目简介 quteen项目(一款校园社区APP)的后端服务,采用分布式微服务架构的设计思想,将所有的后端服务划分为以下5个模块:网关、注册中心、认证服务、基本服务、推荐服务。认证中心采用OAuth2.0协议来进行权限控制,整个后端采用Nacos作为注册中心。 #### 2.微服务划分 ##### 2.1后端微服务架构图 后端架构图 ##### 2.2微服务功能规划 **1.网关** : 所有的请求都必须经过网关转发,保证后端的服务对用户可用不可见。网关主要有以下两个功能。 1. **请求转发**:在访问资源服务时,请求需要携带接入许可access_token,网关会对access_token进行解析,判断用户身份合法后,将用户身份信息加入请求参数,路由到对应的服务中去获取数据,同时,在转发的过程中,将各个请求均衡的转发到各个服务的实例,从而实现负载均衡。 2. **令牌解析**:当用户登录成功后,会得到认证中心返回的jwt令牌,该令牌经过加密,网关在转发请求到对应的微服务时,需要将令牌解析为明文,其中包含了用户信息以及他具有的角色和权限,方便微服务获取用户身份信息,同时判断该用户是否具有某种权限来访问某种资源或操作。 **2.注册中心** : 采用阿里巴巴开源的注册中心**nacos**,实现服务的注册和发现,所有的服务实例都需要在服务上注册自己的信息,同时,所有的服务都可以通过注册中心知道当前整个系统具有哪些服务,基于注册中心,即可实现各个实例的动态上线和下线,极大的方便了集群部署。 **3.认证服务** : 提供用户登录和注册以及授权等功能,基于现有的分布式授权协议,可以实现方法级的权限管理。当用户登录时,会为用户返回加密的jwt令牌,认证服务采用了oauth2.0协议,可以面向多种角色提供多种授权方式和登录方式,具有很强的可拓展性。 **4.基本服务** : 提供系统中最基础的数据修改和读取服务,保证系统基础功能 **5.推荐服务** : 根据已有的用户的数据,采用推荐算法,为用户推荐他可能感兴趣的内容。