常见问题
一、如何升级
在同一大版本内,不同小版本之间的数据是兼容的。例如,版本 3.8.0 的数据可以在升级到 3.8.2 后正常运行。本文将重点介绍这种升级情况的具体操作步骤。
Docker 部署
进入已有的
openim-docker目录:cd openim-docker编辑
.env文件,修改相应的镜像标签(tag)。例如,将:OPENIM_SERVER_IMAGE=openim/openim-server:release-v3.8.0修改为:
OPENIM_SERVER_IMAGE=openim/openim-server:release-v3.8.2停止现有的 Docker 服务:
docker compose down启动更新后的 Docker 服务:
docker compose up -d
源码部署
进入已有的
open-im-server目录:cd open-im-server停止当前服务:
mage stop切换分支并更新代码:
git pull编译并启动服务:
mage
mage start
二、 如何迁移数据
在使用docker compose up -d命令启动IMServer依赖的各个组件之后,IMServer根目录下会生成一个components的文件夹,IMServer运行后产生的数据(如用户、群聊、消息等等)都保存在这个文件夹中。如果需要迁移数据,需要先关闭服务和组件:
docker部署:
docker compose down
源码部署:
mage stop # 关闭服务
docker compose down # 关闭组件
然后移动整个文件夹到数据目录,修改.env文件中DATA_DIR的值为新数据目录,再启动服务和组件:
docker部署:
docker compose up -d # 启动组
源码部署:
docker compose up -d # 启动组件
mage start # 启动服务
三、 如何清除数据
如需要清除数据,需要先关闭服务和组件:
docker部署:
docker compose down
源码部署:
mage stop # 关闭服务
docker compose down # 关闭组件
然后删除open-im-server下的components文件夹。
客户端方面需要重新卸载重装app。
四、 发送文本消息正常,但发送图片失败
一般发送图片失败是由于没有配置第三方存储的原因。默认使用的第三方存储为minio,需修改相关配置
源码部署:
修改 config/minio.yml 文件,配置MinIO外网 IP,以支持发送图片视频文件,其中your-server-ip为服务端外网IP
externalAddress="http://your-server-ip:10005"
docker部署
修改 .env 文件,配置MinIO外网 IP,以支持发送图片视频文件,其中your-server-ip为服务端外网IP
MINIO_EXTERNAL_ADDRESS="http://your-server-ip:10005"
五、 减少Mongo、Kafka内存占用
如果是是使用docker部署的各个组件,可以通过在docker-compose.yml文件中限制mongo和kafka的内存的方式来减小内存的占用。
mongo:
mongodb:
environment:
- wiredTigerCacheSizeGB=0.5 # 修改为适当的值,单位GB
kafka:
kafka:
environment:
KAFKA_HEAP_OPTS: "-Xms256m -Xmx256m" # 添加该限制