当前位置:   article > 正文

openIM本地搭建遇到的问题

openim

openIM本地搭建(虚拟机+js SDK)

本想继续研究dubbo的,由于项目需要,需要集成一个即时通讯的这样一个东西,公司领导推荐了这个开源的openIM,话不多说。
官网地址:
https://doc.rentsoft.cn/#/introduce/production_introduce
研究开源的东西,官方文档是一定要看,如果有官方的技术交流群最好也加进去,这个就有交流群,在官方文档里就有相关的信息,有兴趣自行加入。
官方文档里有快速部署和源码部署,快速部署就是使用docker-compose一键部署,当然这个需要了解一些这方面的知识,源码部署就需要自己手动安装需要的组件,kafka,mysql,MongoDB,etcd,redis。然后执行相应的脚本就可以,这些官方文档上都有相关信息,不想多说。

主要记录一下自己部署的时候遇到的问题,我是用虚拟机部署的server,然后本地启动的官网上提供的js SDK。
首先遇到的第一个问题就是:
panic: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)
在日志里一直在报这个错误,可以看出来是kafka的问题,我没有用过kafka,所以不是很熟悉,第一时间肯定想到去百度,相关的博客有很多,跟着弄了,但是都不能解决,最后还是在官方的技术交流群里一位大佬的提示下,想到了单独启动kafka看看有什么报错信息
还是用docker-compose启动zookeeper和kafka,所以先弄一个docker-compose.yaml文件

version: "3"
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - 2181:2181
    container_name: zookeeper
    volumes:
      - /etc/localtime:/etc/localtime
    environment:
      TZ: Asia/Shanghai
    restart: always

  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    restart: always
    ports:
      - 9092:9092
    environment:
      TZ: Asia/Shanghai
      KAFKA_BROKER_ID: 0
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CREATE_TOPICS: "ws2ms_chat:8:1,ms2ps_chat:8:1,msg_to_mongo:8:1"
      KAFKA_ADVERTISED_LISTENERS: INSIDE://127.0.0.1:9092,OUTSIDE://103.116.45.174:9092
      KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:9093
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT"
      KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
    depends_on:
      - zookeeper
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

想要copy的注意下缩进,然后docker-compose up,这里不要加-d,因为需要看到日志,加了-d的意思就是后台运行
然后果然看到了报错:
library initialization failed - unable to allocate file descriptor table - out of memory
百度这个错误,这个自行百度一下吧,有很多说法,我暂时不想理会,主要就是修改了docker的启动参数
文件地址:/lib/systemd/system/docker.service
在这个文件中找到ExecStart=/usr/bin/dockerd这一行,在这一行后面加上–default-ulimit nofile=65536:65536,注意加个空格。然后执行systemctl restart docker,重启一下。再去启动server就可以解决这个问题了。
从这可以看出,看日志还是要直接看,官方封装的openIM.log里的日志说实话真是找不到原因,我为此耽误了快一周的时间也没有解决这个问题,交流群里问官方的人没人理,还是群里一位网名“知行合一”的大佬指点了我几句,因为是kafaka的问题,首先排除不可能是源码连接kafka的问题,因为其他人没有出现这个问题,排除了源码,那就是kafka启动的问题,启动的日志可以只用用docker-compose启动去看,不要看官方的日志。这才真正定位了问题所在。
然后server启动成功之后,这里说一下,server启动成功是这样的,执行./docker_check_service.sh这个脚本,输出如下图
在这里插入图片描述
server启动成功之后本地启动web项目,这倒是没出现什么大问题,按照官方文档上去执行,出现了这个问题:

Error error0308010Cdigital envelope routinesunsupported
解决办法就是执行set NODE_OPTIONS=–openssl-legacy-provider,前端我不太懂,网上说是因为版本不兼容导致出现了这个问题
参考:https://blog.csdn.net/qq_41838435/article/details/128198169

紧接着我注册了两个用户来测试发消息,但是发现不能发送文件
在这里插入图片描述
可以看到是这样的,这里默认上传文件用的是minio,第一时间想到肯定是这块的配置是不是要改什么,没有头绪,又去群里问了一下,又是 “知行合一”这位大佬出来指点了几句,在/config/usualConfig.yaml这个配置文件里有这个网址:
在这里插入图片描述
这个IP地址在你的浏览器上要能够访问,也就是telnet可以通,我这里已经改成了内网ip,执行脚本的时候这里会被替换成虚拟机的公网ip,但是我的虚拟机公网ip这个10005端口是不通的,但是内网ip是通的。
本地部署主要遇到的就是这几个问题,其中第一个差点让我崩溃,或者说已经让我崩溃,还好没放弃,遇到了 “知行合一”大佬,所以我觉得研究开源的东西还是要在群里多交流,官方文档也一定要仔细看,但是这个openIM的官方文档我只想呵呵,按照他们的文档弄,居然还会有很多问题,而且去网上百度一些问题,博客里写的全是copy官方文档里的流程,毫无价值,这还让人怎么用。其实我有点不懂这些写这种千篇一律的博客的人在想什么,你要干什么,你写的那篇东西是在糊弄你自己么,证明你写了博客么,对你自己来说,你真的去部署了么,对于看你博客的人来说,全是官方文档上的东西,我tm看你的干嘛。

“是不是一定要有所失,才能有所悟”

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/793679
推荐阅读
相关标签
  

闽ICP备14008679号