# 聊天室项目之分布式docker版本 **Repository Path**: dongyedebaba/chatRoom ## Basic Information - **Project Name**: 聊天室项目之分布式docker版本 - **Description**: 此项目主要是将以往的聊天室项目做微服务重构以及性能优化,并且规范化依赖,授权,图床,网关等模块的设计。并且实现应用配置从环境变量中读取(未来会设计脚本以xml配置文件的方式进行应用信息的设置)。同时该项目准备引入视频聊天这个功能。 - **Primary Language**: Java - **License**: Artistic-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-20 - **Last Updated**: 2025-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 聊天室项目之分布式docker版本 #### 介绍 此项目主要是将以往的聊天室项目做微服务重构以及性能优化,并且规范化依赖,授权,图床,网关等模块的设计。并且实现应用配置从环境变量中读取(未来会 设计脚本以xml配置文件的方式进行应用信息的设置)。同时该项目准备引入视频聊天这个功能。 #### 软件架构 软件架构说明 此项目为分布式微服务结构。 ##### 各个模块均按照:Controller、Service、DAO三层架构 - Controller:负责将服务层处理结果包装成统一的回调对象 - Service:负责处理业务 - DAO:负责持久层的操作。在项目结构中将DAO层封装成一个子模块 #### 模块汇总(包含service的为web服务) - image-service:图床服务 - dao:各个模块的dao层汇总模块 - auth-service:认证授权中心服务 - gateway-service:网关服务 - utils:工具模块 ##### image-service 负责对图片的上传与下载,主要形式为上传图片数组并放回图片链接 TODO:搭建一个可视化的界面来管理图片,包括在线预览、下载、日期分类等 ##### dao 负责各个模块的dao层操作,主要形式为提供Mapper类 TODO:各个对象的数据库仍然未设计完毕 ##### auth-service 负责系统所有的认证授权服务 TODO: - 未实现token缓存功能({token,role}的形式) - 服务功能未完成 - 需要将参数放到RequestBody上面去 ##### gateway-service 网关层负责对授权字段的过滤操作,并且通过读取集中式配置中心的配置文件来获取各个角色的权限列表以达到灵活配置服务的权限信息 TODO: - nacos接入外部数据库 - 设计基于角色的权限列表 - 对token拦截并进行验证 ##### utils 工具模块主要负责通用类的和通用方法或接口的提供。通用web返回类统一用HashMap来返回,并且用JSONString格式化对象 TODO: - 继续根据开发实际来设计通用工具类 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. 建立子模块的时候先在父模块里面先注册子模块 2. 父模块不能有打包插件配置(实际上没有必要独立运行的模块都不需要打包插件配置) 3. 子模块相互引用的时候需要加其余子模块的依赖,并且需要在scop中设置complie范围 4. 当引入的是spring管理的bean的时候需要在启动类前面增加@ComponentScan({"com.demo.springboot","com.demo.somethingelse"})。如果是Mapper类的话增加@MapperScan({"com.wechat.dao","com.wechat.utils""}) #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 涉及技术 1. druid连接池 2. 线程池配置 3. netty+websocket 4. 消息队列 5. redis缓存 6. 集群化部署