背景
OpenIM包含多个关键组件,每个都是系统功能必不可少的一部分。具体来说,MongoDB 用于持久化存储;Redis 用作缓存;Kafka 用于消息队列;Zookeeper 用于服务发现;Minio 用于对象存储。这些组件的众多可能会增加部署的复杂性。此外,系统包含多个微服务模块,这要求有效管理进程的启动、停止和监控。为了简化这一过程,我们放弃了传统脚本,转而采用了 mage 这一跨平台方案,兼容所有主流平台和 CPU 架构。本文将详细介绍整个源码部署过程。
OpenIM整体架构
OpenIM主要分为OpenIM SDK和OpenIM Server两大核心部分。这两部分向开发者提供了全套工具和服务,使得即时通讯功能的集成变得简单便捷。功能涵盖了消息的发送与接收、用户管理、群组管理等关键方面。下面提供的OpenIM整体架构图清楚地展示了各组件在系统中的角色和位置,帮助开发者更好地理解和使用这一平台。
1环境要求
注意事项 | 详细说明 |
---|---|
操作系统 | 全平台支持(Linux, Windows, Mac) |
CPU | 支持ARM和AMD架构 |
硬件资源 | 至少8GB可用内存 |
Golang | v1.20 或更高 |
Docker | 集成了Compose插件或者使用Docker-compose |
Git | v2.17.1 或更高 |
2. 部署 OpenIM Server (IM)
2.1 克隆仓库
使用 main
分支或切换到 release-v3.7
及以后的发布分支:
git clone https://github.com/openimsdk/open-im-server && cd open-im-server
注意:
1.一般建议使用release分支,功能稳定;
2.如果是通过windows下载,再上传到linux,可能会有脚本权限或\r问题,建议 执行命令 find ./ -name "*.sh" | xargs chmod +x,以赋予脚本执行权限;
2.2 部署组件 (MongoDB/Redis/Zookeeper/Kafka/MinIO)
通过Docker Compose启动服务:
docker compose up -d
这一步主要是自动部署所依赖的组件,以及web/admin前端镜像,同时会把端口映射出来,以供openIM访问和外部使用,
如果要修改组件密码,则需要在此命令执行之前修改docker-compose.yml文件。
2.3 设置外网IP
修改配置文件,设置外部访问地址:
-
在
config/minio.yml
中修改externalAddress
为http://外网IP:port
这个是minio的访问地址,如不修改,则无法发送图片视频文件。
-
在
config/openim-api.yml
中将grafanaURL: http://127.0.0.1:13000/
修改为http://外网IP:port
这个是grafana的访问地址,如不修改,则无法查看统计数据。
这里所谓的外网IP,仅表示用户能通过此IP访问,无所谓是否真正意义的外网IP