我是靠谱客的博主 每日一库,这篇文章主要介绍源码单机部署OpenIM实况教学,现在分享给大家,希望可以做个参考。

该操作均在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_64export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport 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=3export 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=2000dataDir=/usr/local/kafka/zk/data/dataLogDir=/usr/local/kafka/zk/logs/clientPort=2181

编辑 server.properties 为以下内容

broker.id=1listeners=PLAINTEXT://127.0.0.1:9092num.network.threads=3num.io.threads=8socket.send.buffer.bytes=102400socket.receive.buffer.bytes=102400socket.request.max.bytes=104857600log.dirs=/usr/local/kafka/logsnum.partitions=1num.recovery.threads.per.data.dir=1offsets.topic.replication.factor=1transaction.state.log.replication.factor=1transaction.state.log.min.isr=1log.retention.hours=168log.segment.bytes=1073741824log.retention.check.interval.ms=300000zookeeper.connect=127.0.0.1:2181zookeeper.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 记录排查


最后

以上就是每日一库最近收集整理的关于源码单机部署OpenIM实况教学的全部内容,更多相关源码单机部署OpenIM实况教学内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部