# Springboot_muxin **Repository Path**: qhl/Springboot_muxin ## Basic Information - **Project Name**: Springboot_muxin - **Description**: Java仿微信全栈 高性能后台+移动客户端 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-08-25 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java仿微信全栈 高性能后台+移动客户端 ## 技术栈 > 前端:MUI H5+ > 后端:Springboot netty mybatis ## 仓库介绍 + Backend 项目后端代码 + Fronkend 项目前端代码 + WebChat 测试netty的前端项目 + spring-boot-fastDFS 测试fasdfs分布式文件服务的项目 + springboot_mybatis 整合springboot和mybatis的项目 ## 数据库
数据表设计 > Table structure for chat_msg ```sql DROP TABLE IF EXISTS `chat_msg`; CREATE TABLE `chat_msg` ( `id` varchar(64) NOT NULL, `send_user_id` varchar(64) NOT NULL, `accept_user_id` varchar(64) NOT NULL, `msg` varchar(255) NOT NULL, `sign_flag` int(1) NOT NULL COMMENT '消息是否签收状态\r\n1:签收\r\n0:未签收\r\n', `create_time` datetime NOT NULL COMMENT '发送请求的事件', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` > Table structure for friends_request ```sql DROP TABLE IF EXISTS `friends_request`; CREATE TABLE `friends_request` ( `id` varchar(64) NOT NULL, `send_user_id` varchar(64) NOT NULL, `accept_user_id` varchar(64) NOT NULL, `request_date_time` datetime NOT NULL COMMENT '发送请求的事件', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` > Table structure for my_friends ```sql DROP TABLE IF EXISTS `my_friends`; CREATE TABLE `my_friends` ( `id` varchar(64) NOT NULL, `my_user_id` varchar(64) NOT NULL COMMENT '用户id', `my_friend_user_id` varchar(64) NOT NULL COMMENT '用户的好友id', PRIMARY KEY (`id`), UNIQUE KEY `my_user_id` (`my_user_id`,`my_friend_user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` > Table structure for users ```sql DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( `id` varchar(64) NOT NULL, `username` varchar(20) NOT NULL COMMENT '用户名,账号,慕信号', `password` varchar(64) NOT NULL COMMENT '密码', `face_image` varchar(255) NOT NULL COMMENT '我的头像,如果没有默认给一张', `face_image_big` varchar(255) NOT NULL, `nickname` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '昵称', `qrcode` varchar(255) NOT NULL COMMENT '新用户注册后默认后台生成二维码,并且上传到fastdfs', `cid` varchar(64) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`), UNIQUE KEY `username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ```
## Docker安装fastdfs
安装过程 * 拉取镜像 ``` docker pull morunchang/fastdfs ``` * 运行tracker ``` docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh ``` * 运行storage ``` docker run -d --name storage --net=host -e TRACKER_IP=:22122 -e GROUP_NAME= morunchang/fastdfs sh storage.sh ``` > `Nginx`端口应该是默认映射为`8080`吧 1. 使用的网络模式是–net=host, `` 替换为你机器的Ip即可 2. `` 是组名,即storage的组 3. 如果想要增加新的storage服务器,再次运行该命令,注意更换 新组名 运行完后会自动进入容器内部,输入【exit】退出容器内部 4. docker ps 查看容器信息 ``` [root@iZh3cshm0xz7wjZ ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ccdf6bbeab48 morunchang/fastdfs "sh storage.sh" 5 seconds ago Up 4 seconds storage a7253c93bce1 morunchang/fastdfs "sh tracker.sh" About a minute ago Up About a minute tracker ``` * 修改nginx的配置,不拦截上传内容 ``` //1.进入容器内部 docker exec -it storage /bin/bash // storage 是 docker ps 中的NAMES // exit 退出 root@iZh3cshm0xz7wjZ:/# cd data root@iZh3cshm0xz7wjZ:/data# ls fast_data fastdfs fastdfs-nginx-module libfastcommon nginx nginx-1.9.11.tar.gz //2.修改nginx配置文件 root@iZh3cshm0xz7wjZ:/# vi /data/nginx/conf/nginx.conf //3. 添加修改内容 location /group1/M00 { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache http-cache; proxy_cache_valid 200 304 12h; proxy_cache_key $uri$is_args$args; proxy_pass http://fdfs_group1; expires 30d; } //4.退出 root@iZh3cshm0xz7wjZ:/data/nginx/conf# exit exit //5. 重启storage服务 [root@iZh3cshm0xz7wjZ ~]# docker restart storage storage ``` 通过spring-boot-fastDFS可以来测试是否安装好fastdfs,我参考的是这篇[博客](https://blog.csdn.net/lizhihaooo/article/details/79261388#commentsedit) 能上传文件,并通过网址访问就表示成功了 ![img](https://camo.githubusercontent.com/3815b3363efe399dba6c391f11a95218d60d559a/687474703a2f2f34372e3130372e3131332e34333a383038302f6d7578696e2f4d30302f30302f30302f72424135616c7634426e534145476256414143794c6b77714464593035372e706e67)