写点什么

稳扎稳打 部署丝滑 开源即时通讯(IM)项目 OpenIM 源码部署流程(linux windows mac)

作者:Geek_1ef48b
  • 2024-04-29
    云南
  • 本文字数:1577 字

    阅读完需:约 5 分钟

背景

OpenIM 包含多个关键组件,每个都是系统功能必不可少的一部分。具体来说,MongoDB 用于持久化存储;Redis 用作缓存;Kafka 用于消息队列;Zookeeper 用于服务发现;Minio 用于对象存储。这些组件的众多可能会增加部署的复杂性。此外,系统包含多个微服务模块,这要求有效管理进程的启动、停止和监控。为了简化这一过程,我们放弃了传统脚本,转而采用了 mage 这一跨平台方案,兼容所有主流平台和 CPU 架构。本文将详细介绍整个源码部署过程。

OpenIM 整体架构

OpenIM 主要分为 OpenIM SDK 和 OpenIM Server 两大核心部分。这两部分向开发者提供了全套工具和服务,使得即时通讯功能的集成变得简单便捷。功能涵盖了消息的发送与接收、用户管理、群组管理等关键方面。下面提供的 OpenIM 整体架构图清楚地展示了各组件在系统中的角色和位置,帮助开发者更好地理解和使用这一平台。



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

2.4 🛠️ 初始化

在第一次编译前执行初始化脚本:

  • Linux/Mac 平台:

bash bootstrap.sh
复制代码
  • Windows 平台:

bootstrap.bat
复制代码

这里主要是下载 mage,前提是能本机访问 github,同时已经安装了 go

2.5 🛠️ 编译

适用于 Linux/Windows/Mac 平台:

mage
复制代码

这里需要先下载依赖,所以第一次编译可能会比较慢,大概需要 3-5 分钟,建议设置 go 代理



2.6 🚀 启动/停止/检测

适用于 Linux/Windows/Mac 平台:

  • 启动:

mage start
复制代码



  • 后台启动并收集日志:

nohup mage start >> _output/logs/openim.log 2>&1 &
复制代码
  • 停止:

mage stop
复制代码



  • 检测:

mage check
复制代码



3. 部署 App Server (Chat)

3.1 clone 仓库 使用 main 分支或切换到 release-v1.7 或以后的 release 分支

git clone https://github.com/openimsdk/chat&& cd chat
复制代码

3.2 🛠️ 初始化

第一次编译前,linux/mac 平台下执行:

bash bootstrap.sh
复制代码

windows 执行

bootstrap.bat
复制代码

3.3 🛠️ 编译(linux/windows/mac 平台均可用)

mage
复制代码

3.4 🚀 启动/停止/检测(linux/windows/mac 平台均可用)

# 启动mage start# 后台启动 收集日志nohup mage start >> _output/logs/chat.log 2>&1 &# 停止mage stop# 检测mage check
复制代码

关于我们

得益于广泛的开发者支持,OpenIM 在开源即时通讯(IM)领域保持领先地位,目前在 GitHub 上的星标已超过 13k。在政府和企业领域,随着信息技术的快速发展和创新产业的广泛应用,对 IM 的需求正急速增长。此外,随着协同办公软件市场的持续扩展,“安全可控”已成为最关键的要求之一。

在后 AIGC 时代,IM 作为人机交互的首要接口,其价值势必会越来越大。我们期待 OpenIM 在后 AIGC 时代能发挥更大的作用,使每一个应用都能集成 OpenIM,提升整体效率和安全性。

github: https://github.com/openimsdk

developer: https://docs.openim.io/zh-Hans/



用户头像

Geek_1ef48b

关注

还未添加个人签名 2021-08-25 加入

还未添加个人简介

评论

发布
暂无评论
稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)_Geek_1ef48b_InfoQ写作社区