同一内网下 OpenIMServer 源码集群部署指南
本文以 A、B 两台机器(内网 IP 分别为 IP_A 和 IP_B)为例,它们位于同一内网环境中,用于部署集群版 OpenIMServer 与 Nginx。
假设您已部署 Redis 集群、MongoDB 分片集群、Kafka 集群及 Etcd 集群,具体地址如下:
- Redis 集群地址:
redisAddr1,redisAddr2,redisAddr3 - MongoDB 集群地址:
mongoAddr1,mongoAddr2,mongoAddr3 - Kafka 集群地址:
kafkaAddr1,kafkaAddr2,kafkaAddr3 - Etcd 集群地址:
etcdAddr1,etcdAddr2,etcdAddr3
以上组件建议部署在 三台或更多节点 上,以确保高可用性与负载均衡
此外,MinIO 的内部服务访问地址配置为 your_minio_internal_address,外部访问地址配置为 your_minio_external_address。
A 和 B 两台机器以及组件集群内网互通,且A、B两台机器都有外网IP。
目录结构
前提条件
确保以下组件已正确部署并运行:
- Redis 集群
- MongoDB 分片集群
- Kafka 集群
- Etcd 集群
- MinIO 服务
本文仅覆盖两台 OpenIMServer 业务节点与 Nginx 的部署,不包含 Redis/MongoDB/Kafka/Etcd 集群本身的搭建过程。若当前只有两台空机器,请先完成这些外部组件集群的部署后再继续本文步骤。
1. 克隆仓库
在两台机器(A 和 B)上分别执行以下命令以克隆 OpenIMServer 仓库,并切到 GitHub Releases 页面绿色 Latest 对应的最新正式发布 tag:
git clone https://github.com/openimsdk/open-im-server
cd open-im-server
git fetch --tags
LATEST_STABLE_TAG=$(basename "$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/openimsdk/open-im-server/releases/latest)")
git checkout "$LATEST_STABLE_TAG"
这里的 latest 指 GitHub Releases 页面绿色 Latest 的正式发布版,不包含 alpha/beta/rc 等预发布版本。建议两台机器使用同一个正式版 tag;如需固定 版本(例如
v3.8.3-patch.12),请在两台机器都执行git checkout v3.8.3-patch.12。
2. 配置修改
在机器 A 和 B 上,按照以下步骤修改配置文件,确保各组件正确连接。所有地址字段均采用单行列表格式 address: [addr1, addr2, addr3]。
2.1 Kafka 配置
编辑 open-im-server/config/kafka.yml 文件,设置 address 字段为 Kafka 集群地址列表:
address: [kafkaAddr1, kafkaAddr2, kafkaAddr3]