该操作均在CentOS7下进行

这里不推荐直接使用 git clone --recursive 方式,因为大家都懂的网络问题!

首先到 https://github.com/OpenIMSDK/Open-IM-Server 下载项目压缩包

再到 https://github.com/OpenIMSDK/Open-IM-SDK-Core 选择最新的 tag 下载项目压缩包

都解压,把 Open-IM-SDK-Core 下的内容放入到 Open-IM-Server/cmd/Open-IM-SDK-Core 里面

OK ,项目核心内容就搞定了!

现在我们开始部署项目所需要的环境:

  • 安装最新 golang ,配置 go 代理

export GOPROXY=https://proxy.golang.com.cn,direct
  • 检测服务器是否安装了 java (kafka服务需要用到,推荐 java1.8),可以 java -version 检测,如果输出以下内容,则代表安装成功

openjdk version "1.8.0_352"

OpenJDK Runtime Environment (build 1.8.0_352-b08)

OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)

如果没有可执行 

yum -y install java-1.8.0-openjdk*

然后命令检测是否存在 JAVA_HOME 

echo $JAVA_HOME

如果没有输出 在 vi /etc/profile 下添加

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

其中 JAVA_HOME 的路径需要到 /usr/lib/jvm/java-1.8.0- 内自己匹配,然后  

source/etc/profile
  • 安装etcd

到 https://github.com/etcd-io/etcd/releases 下找到最新的  linux-amd64.tar.gz

然后 wget 下载压缩包,解压到 /usr/local/etcd

vi /etc/profile

  内加入

export ETCDPATH="/usr/local/etcd"

export ETCDCTL_API=3

export PATH="$PATH:$ETCDPATH"

然后  

source/etc/profile

启动 etcd ,建议采用守护方式 nohup 之类守护

/usr/local/etcd/etcd --data-dir $ETCDPATH/test_data
  • 安装 kafka

到 https://kafka.apache.org/downloads 下载 tgz 压缩包,这里选择 Scala 2.13-kafka_2.13-3.3.1.tgz (asc, sha512) 

解压到  /usr/local/kafka ,进入目录

备份 config 下的两个文件, zookeeper.properties  server.properties 

编辑 zookeeper.properties 为以下内容

tickTime=2000

dataDir=/usr/local/kafka/zk/data/

dataLogDir=/usr/local/kafka/zk/logs/

clientPort=2181

编辑 server.properties 为以下内容

broker.id=1

listeners=PLAINTEXT://127.0.0.1:9092

num.network.threads=3

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=/usr/local/kafka/logs

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=1

transaction.state.log.replication.factor=1

transaction.state.log.min.isr=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=127.0.0.1:2181

zookeeper.connection.timeout.ms=6000

kafka 下分别新增目录 zk/logs zk/data  logs 

进入 bin 目录,自行守护启动 

./zookeeper-server-start.sh -daemon ../config/zookeeper.properties    #启动zookeeper
./kafka-server-start.sh -daemon ../config/server.properties           #启动kafka

使用 jps 命令查看服务是否启动成功

  • 安装MySQL(建议8.0+),redis(建议7.0+),MongoDB(建议4.0+)

到此,所有所需要的环境均已配置完毕

进入到 Open-IM-Server cmd 目录下 执行

go mod tidy

进入到 Open-IM-Server  config 目录下 修改 config.yaml 

  • 修改 Etcd 配置项

etcd:

  etcdAddr: [ 127.0.0.1:2379 ]//组件部署在本地默认IP+监听端口即可,部署在其他服务器,更换为服务监听的IP+端口

  • 修改 MySQL 配置项

mysql:

  dbAddress: [ 127.0.0.1:3306 ]//组件部署在本地默认IP+监听端口(部署的MySQL端口默认为3306,如果未修改,记得修改此项配置)即可,部署在其他服务器,更换为服务监听的IP+端口

  dbUserName: root //修改为部署的MySQL账户名

  dbPassword: openIM //修改为部署的MySQL密码

  • 修改 MongoDB 配置项

 mongo:

   dbAddress: 127.0.0.1:27017 //组件部署在本地默认IP+监听端口即可,部署在其他服务器,更换为服务监听的IP+端口

   dbDatabase: openIM //mongo中初始化的数据库名称,可修改

   dbUserName:

   dbPassword:

  • 修改 Redis 配置项

 redis:

  dbAddress: [ 127.0.0.1:6379 ]

  dbPassWord: openIM #redis密码 修改为部署的redis密码

  enableCluster: false #如果外部redis以集群方式启动,需要打开此开关,单机默认

  • 修改 Kafka 配置项

kafka:

    ws2mschat:

    addr: [ 127.0.0.1:9092 ] //组件部署在本地默认IP+监听端口即可,部署在其他服务器,更换为服务监听的IP+端口

    topic: "ws2ms_chat"

  ws2mschatoffline:

    addr: [ 127.0.0.1:9092 ] //组件部署在本地默认IP+监听端口即可,部署在其他服务器,更换为服务监听的IP+端口

    topic: "ws2ms_chat_offline"

  msgtomongo:

    addr: [ 127.0.0.1:9092 ] //组件部署在本地默认IP+监听端口即可,部署在其他服务器,更换为服务监听的IP+端口

    topic: "msg_to_mongo"

  ms2pschat:

    addr: [ 127.0.0.1:9092 ] //组件部署在本地默认IP+监听端口即可,部署在其他服务器,更换为服务监听的IP+端口

    topic: "ms2ps_chat"

进入到 Open-IM-Server  script 目录下 执行

chmod +x *.sh
./build_all_service.sh
./start_all.sh
./check_all.sh

如果中途有报错,进入 logs 下的 openIM.log 记录排查


打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

分享到
  • QQ好友
  • 微信好友
  • 新浪微博