1.OpenIM 是什么
OpenIM是一个开源的即时通讯组件,包括IM服务端和客户端SDK,实现了高性能、轻量级、易扩展等重要特性。
2.部署组件
Open-IM-Server依赖五大开源组件:Etcd、MySQL、MongoDB、Redis、Kafka(建议使用docker自动部署,详细操作请看步骤3)
提前安装go环境(截至2023/12/14最新版)
代码语言:请在此输入代码块语言 java复制wget https://dl.google.com/go/go1.21.5.linux-amd64.tar.gz
wget命令安装
代码语言:请在此输入代码块语言 java复制Ubuntu系统:
apt-get install wget
CentOS系统:
yum install wget
解压
代码语言:请在此输入代码块语言 linux复制tar -C /usr/local -zxvf go1.21.5.linux-amd64.tar.gz
环境变量
代码语言:请在此输入代码块语言 linux复制vim /etc/profile
在/etc/profile最后一行添加
代码语言:请在此输入代码块语言 linux复制Ubuntu系统:
export PATH=$PATH:/usr/local/go/bin
ContOS系统:
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
保存退出后source刷新
代码语言:请在此输入代码块语言 linux复制source /etc/profile
验证
代码语言:请在此输入代码块语言 linux复制go version
出现版本号代表成功
代码语言:请在此输入代码块语言 linux复制go version go1.21.5 linux/amd64
2.1 克隆项目
代码语言:请在此输入代码块语言 linux复制git clone https://github.com/OpenIMSDK/Open-IM-Server.git
很多人可能在这里会出现
fatal: 无法访问 'https://github.com/OpenIMSDK/Open-IM-Server.git/':GnuTLS recv error (-110): The TLS connection was non-properly terminated.
原因:这是因为国内镜像的问题
解决:直接在 中间加上 gitclone.com/
代码语言:请在此输入代码块语言 linux复制git clone https://gitclone.com/github.com/OpenIMSDK/Open-IM-Server.git
2.2 修改config.yaml,配置五大组件的连接参数
代码语言:请在此输入代码块语言 linux复制cd Open-IM-Server
vim config.yaml
2.3 修改 Etcd 配置项
代码语言:请在此输入代码块语言 linux复制etcd:
etcdAddr: [ 127.0.0.1:2379 ] #替换为服务器ip
2.4 修改MySQL配置项
代码语言:请在此输入代码块语言 linux复制mysql:
dbAddress: [ 127.0.0.1:3306 ]
dbUserName: root
dbPassword: root #可修改用户名密码
2.5 修改MongoDB配置项
代码语言:请在此输入代码块语言 linux复制 mongo:
dbAddress: [ 127.0.0.1:27017 ]
dbUserName:
dbPassword:
2.6 修改 Kafka 配置项
代码语言:请在此输入代码块语言 linux复制kafka:
ws2mschat:
addr: [ 127.0.0.1:9092 ]
ms2pschat:
addr: [ 127.0.0.1:9092 ]
3 构建项目
如果没有安装组件(建议使用docker-compose自动拉取)
代码语言:请在此输入代码块语言 linux复制cd Open-IM-Server/script
docker-compose up -d
检查
./docker_check_service.sh
出现下图拉取成功
部署组件完成直接启动即可
代码语言:请在此输入代码块语言 linux复制cd Open-IM-Server/script
chmod x *.sh
./build_all_service.sh
3.1 启动
代码语言:请在此输入代码块语言 linux复制./start_all.sh
3.2 检查
代码语言:请在此输入代码块语言 linux复制./check_all.sh
3.3 重新启动
代码语言:请在此输入代码块语言 linux复制./start_all.sh
开放相关端口
10001~10010,11001