Skip to main content

环境准备

  • 服务器配置要求
    • JuggleIM 对服务器配置并无强制要求,但建议采用 4C8G 的主机;
  • 操作系统要求
    • 主流Linux系统即可,如CentOS、Ununtu等;
  • 网络要求
    • 需要具备公网IP(纯内网使用除外),并开放响应访问端口;

安装包下载

下载地址:https://juggle.im/docs/guide/deploy/releasenodes/

#下载安装包
wget https://downloads.juggle.im/server/linux/amd64/juggleim-1.8.5.tar.gz

#解压
tar -xvf juggleim-1.8.5.tar.gz

目录说明:

  • /conf 配置文件目录,其中包含一个配置文件示例;
  • /imserver JuggleIM 可执行程序;
  • /sql MySQL 初始化脚本;
  • /logs 日志输出目录;

依赖中间件安装

  • MySQL 安装 (必须)
    • 8.x及以上版本即可;
    • 安装过程,略;
    • 使用部署目录中sql文件夹下的文件初始化数据库;
  • MongoDB 安装(可选)
  • Hbase安装(可选)
  • Zookeeper安装(可选)

配置文件说明

# IM 集群的名字
clusterName: jim_cluster

# IM 节点的名字,务必保证每个节点的名字,集群中唯一
nodeName: jim_node_01

# 部署模式,single:单机模式;cluster:集群模式
clusterMod: single

# 本节点的内网IP和rpc监听端口
nodeHost: 127.0.0.1
nodePort: 8888

# 消息数据的存储引擎,枚举值:mysql/mongo/hbase
msgStoreEngine: mysql

# 集群模式下,需要zookeeper做节点注册和发现;单机模式可忽略此配置项
zookeeper:
address: 127.0.0.1:2181

# 日志输出目录
log:
logPath: ./logs
logName: im-server

# (可选)内置时序数据库,用于可视化日志,数据统计等数据的临时存储
kvdb:
isOpen: true
dataPath: ./kvdb_data

# mysql 相关配置
mysql:
user: db_user
password: db_pwd
address: mysql_host:3306
name: jim_db

# (可选) mongodb相关配置,当msgStoreEngine为mongo时必须
mongodb:
address: mongodb_host:27017
name: db_name

# (可选)Hbase 相关配置,当msgStoreEngine为hbase时必须
hbase:
address: hbase_host:2181

# IM长连接(websocket)监听端口,9002对内使用;9003对外使用,即9003需要开放到公网,供客户端sdk链接使用
connectManager:
wsPort: 9002
proxyPort: 9003

# IM 服务端API网关的监听端口
apiGateway:
httpPort: 8082

# IM 管理后台的监听端口
adminGateway:
httpPort: 8090

服务启动

在部署目录下,imserver可直接运行。如下图:

start imserver

导入App

JuggleIM是多租户系统,一套私有部署,可以创建多个数据相互隔离的App。创建App需要在官网后台申请授权License。步骤如下:

1. 开发者后台,创建应用 (选择私有云)

create app

2. 生成安装license

create license

3. 登录私有安装的IM的管理后台

JuggleIM 私有部署后,8090端口是管理后台地址,例如: http://127.0.0.1:8090, 默认账号密码: admin/123456 登录后台后,点击导入应用,填入license

import license

端口说明

端口协议说明
9003websocketIM 长连接地址,供客户端SDK建立长连接使用。如果器群部署的话,可以使用负载均衡做转发,对外暴露负载均衡的IP/域名
8082httpIM 服务端API地址,供业务服务器调用。集群部署,同样需要负载均衡
8090httpIM 管理后台地址,集群部署,需要负载均衡

消息存储引擎选择

JuggleIM的消息数据支持三种存储引擎(MySQL/MongoDB/Hbase),这里分别介绍下三种存储引擎能应对的不同业务量(仅供参考)。

存储引擎适用场景
MySQL1. 日消息量 10 亿条以下;2. 日活 3w 以下;
MongoDB1. 日消息量 100 亿条以下;2. 日活50w以下;
Hbase1. 日消息量 100亿条以上;2. 日活50w以上;