2

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

 4 months ago
source link: https://studygolang.com/articles/36624
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

OpenIM · 大约21小时之前 · 59 次点击 · 预计阅读时间 3 分钟 · 大约8小时之前 开始浏览    

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

OpenIM整体架构

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

1

developer_c517c3e.jpg

1环境要求

注意事项详细说明操作系统全平台支持(Linux, Windows, Mac)CPU支持ARM和AMD架构硬件资源至少8GB可用内存Golangv1.20 或更高Docker集成了Compose插件或者使用Docker-composeGitv2.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

2.4 🛠️ 初始化

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

  • Linux/Mac 平台:

bash bootstrap.sh
  • Windows 平台:

bootstrap.bat

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

2.5 🛠️ 编译

适用于Linux/Windows/Mac平台:

mage

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

developer_e51c5a8.png

2.6 🚀 启动/停止/检测

适用于Linux/Windows/Mac平台:

mage start

developer_4bb48b6.png

  • 后台启动并收集日志:

nohup mage start >> _output/logs/openim.log 2>&1 &
mage stop

developer_e17735d.png

mage check

developer_b45498e.png

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/

developer_d4cd9d4.png

有疑问加站长微信联系(非本文作者)

280

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK