# cinima **Repository Path**: chq5860746/cinima ## Basic Information - **Project Name**: cinima - **Description**: 微服务视频网站实践学习 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-23 - **Last Updated**: 2023-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cinima #### 项目介绍 SpringCloud Alibaba在线视频平台,用户通过可以通过在线观看动漫视频,上传视频;对视频点赞 评论等功能,用户之间可以实时通过评论交流,关注推送视频更新消息功能;管理员后台可以对视频进行审核上线等功能; #### 主要技术栈 后端: SpringCloud,SSM 、Mysql、ElasticSearch、Websocket、Redis 、Xxl-Job、MinIO、docker,RabbitMq 前端: JS+Vue3+ElemntPlus+Webpack+Vue- Router+axios #### 软件架构 1.网关服务 2.用户服务 3.番剧服务 4.媒体资源服务 5.任务调度服务 6.搜索服务 #### 功能实现 1、用Redis+token代替传统session模式保存登录信息,HypeLoglog数据类型完成UV统计,Set数据类型完成点赞关注功能; 2、使用ES倒排索引解决mysql全文索引问题提高检索速度; 使用RabbitMq消息队列解耦,异步将数据从Mysql同步到ES,使用RabbitMq延迟队列实现投稿视频的定时发布,用Nacos作为服务注册中心,Sentinel熔断降级及时释放服务资源,Seata使用XA模式保证微服务之间数据强一致性。 3、MinIO存储文件上传下载,直接通过url可获取图片等资源;减少与服务器端的消耗,Mysql存储关键视频信息提供可靠存储; 4.、利用WebSocket协议主动推送的特性,主动推送用户之间回复等信息,关注用户视频更新信息; 5、利用Xxl-job分布式任务调度完成定时完成排行榜任务,使用Redis中的游标Scan代替keys *匹配优化,防止redis阻塞主线程 #### 后台介绍 ![输入图片说明](xxl-job-2.4.0/doc/images/image.png) ![输入图片说明](xxl-job-2.4.0/doc/images/2.png.png) ![输入图片说明](xxl-job-2.4.0/doc/images/3.png.png) #### 前台介绍 ![输入图片说明](xxl-job-2.4.0/doc/images/7.png) ![输入图片说明](xxl-job-2.4.0/doc/images/8.png) ![输入图片说明](xxl-job-2.4.0/doc/images/9.png)