前言

自己之前分享了分布式websocket的视频有同学去fork项目了,自己启动一下更方便理解项目嘛。然后把项目启动需要的东西全部梳理出来。支持群聊单聊,表情包以及发送图片。 支持消息可靠,消息防重,消息有序。同时基础架构有分布式权限,分布式唯一id,分布式websockt, 分布式事务等常见的分布式技术。 已经分享的文章 git项目地址 【IM即时通信系统(企聊聊)】点击可跳转

分布式websocket即时通信(IM)系统构建指南【第七期】 分布式websocket即时通信(IM)系统保证消息可靠性【第八期】 分布式websocket IM聊天系统相关问题问答【第九期】 什么?websocket也有权限!这个应该怎么做?【第十期】 分布式ID是什么,以美团Leaf为例改造融入自己项目【第十一期】 IM聊天系统为什么需要做消息幂等?如何使用Redis以及Lua脚本做消息幂等【第12期】 微信发送一条消息经历哪些过程。企业微信以及钉钉的IM架构对比【第13期】 微信群为什么上限是500人,IM设计系统中的群聊的设计难点【第14期】 【分布式websocket】RocketMQ发送消息保证消息最终一致性需要做哪些处理?【第15期】

【分布式websocket】群聊中的各种难点以及解决推拉结合【第16期】

【分布式webscoket】未读消息如何设计?解决缓存与数据库数据一致性!推送未读消息流程【第17期】

IM系统客户端消息存储在手机电脑浏览器分别存储在什么地方?对消息加密策略?如何保证服务端消息和客户端消息一致性【第18期】 【分布式websocket 】前端vuex管理客户端消息crud!使用localStorage来存储【第19期】

sql脚本

yan-v3.sql 是其中涉及到的表结构。 表结构主要是yan_im开头的表。sys开头的主要是用户中心的模块。主要使用他来进行用户登录和注册。

每个表的大概作用

leaf_allc 是美团leaf的表。用于生成分布式唯一id。 用户中心使用的用户表为sys_user表。注册的用户在这个里面; yan_im_user 存储着用户信息。

聊天消息主要存储在yan_im_user_chat这张表里面。

前置东西

Naocs,Redis,RocketMQ Mysql8 Maven npm

如图所示,主要要安装Naocs,Reids和Rocketmq。有了这三个中间件。就可以启动项目了。

前端

需要 npm run serve 来运行:

后端需要启动的服务;

后台需要至少四个服务。 文件服务需要使用到阿里云oss配置,需要自己去阿里云申请。但是这个服务也不影响一些基础的聊天消息发送服务。

nacos

GitHub的Release下载页:https://github.com/alibaba/nacos/releases

下载 安装 然后改为单击启动 startup.cmd -m standalone这样子单击启动一下。

rocketmq

nameserve的地址。9876.。然后broker的地址一般默认的是10911; 下载地址加粗了

1.下载和解压RocketMQ:

下载最新的稳定版本,例如 rocketmq-all-4.9.2-bin-release.zip。 https://rocketmq.apache.org/download/ 将ZIP文件解压缩到一个无中文字符的目录,如 D:\RocketMQ。 2. 配置环境变量:

右键点击“此电脑” > “属性” > “高级系统设置” > “环境变量”。 如果不存在,新建系统变量 JAVA_HOME,值设为Java的安装路径,例如 C:\Program Files\Java\jdk1.8.x_xxx。 如果不存在,新建系统变量 ROCKETMQ_HOME,值设为RocketMQ的解压目录,例如 D:\RocketMQ。 在系统变量 Path 中,添加 %JAVA_HOME%\bin 和 %ROCKETMQ_HOME%\bin。 3. 创建目录:

在 D:\RocketMQ 目录下创建 logs 和 store 目录。 在 store 目录下创建 commitlog、consumequeue、index 和 slowmsglog 子目录。 4. 修改启动脚本:

打开 D:\RocketMQ\bin 目录下的 mqnamesrv.cmd 和 mqbroker.cmd 文件。 在 mqnamesrv.cmd 中,找到 set NAMESRV_PORT=9876 和 set JAVA_OPT=-Drocketmq.namesrv.logdir=%ROCKETMQ_HOME%\logs,确保端口和日志目录正确。 在 mqbroker.cmd 中,找到 set BROKER_PORT=10911 和 set JAVA_OPT=-Drocketmq.store.root.dir=%ROCKETMQ_HOME%\store,设置端口和存储目录。根据需要调整JVM内存参数,例如 set JAVA_OPT=-Xms1g -Xmx1g %JAVA_OPT%。 5. 启动NameServer:

打开命令提示符,切换到 D:\RocketMQ\bin 目录,运行 mqnamesrv.cmd。 6. 启动Broker:

在同一个命令提示符窗口中,运行 mqbroker.cmd -n localhost:9876。这将启动一个单节点的Broker,并自动注册到NameServer。 7. 验证部署:

运行 mqadmin 命令,如 D:\RocketMQ\bin\mqadmin.bat topicList -n localhost:9876,检查是否能列出默认的Topic。

rocketmq控制台

为rocketmq-console 地址

https://github.com/apache/rocketmq-externals

修改rocketmq-console\src\main\resources\application.properties

启动项目 直接启动: mvn spring-boot:run

先打成jar包再启动: mvn clean package -Dmaven.test.skip=true java -jar target/rocketmq-console-ng-1.0.0.jar ———————————————— 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_41983685/article/details/124952445

中途有遇到问题 端口被占用

一、开始---->运行---->cmd,或者是window+R组合键,调出命令窗口 二、输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是9080,首先找到它。 三、查看被占用端口对应的PID,输入命令:netstat -aon|findstr “9080”,【引号可以不写】,回车,记下最后一位数字,即PID,这里是2720。 四、继续输入tasklist|findstr “13280”,回车,查看是哪个进程或者程序占用了9080端口,结果是:DownloadSDKServer.exe 五、我们也打开任务管理器,切换到详细信息,在PID一列查看13280对应的进程是谁,如下图: 六、结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im DownloadSDKServer.exe

原文链接 端口占用

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: