Path IM Server Save Abandoned

使用go-zero框架编写的IM服务

Project README

Path-IM-Server

使用go-zero框架开发的IM服务器。 有高度定制IM需求的开发者,可以使用这个项目。

普通开发者可以在演示项目 基础上进行开发。

文档入口

优势

  • 使用go-zero微服务框架 开发更方便 自带链路追踪,p2c服务负载均衡,熔断限流,自适应降载等功能
  • 不依赖mysql所有业务逻辑均请求你自己的业务rpc接口 你只需实现rpc接口即可
  • 可以使用 cassandra 来替代 mongodb
  • 类似QQ群聊的读扩散模式 妈妈再也不用担心mongodb/cassandra写入性能问题了
  • 使用dart开发sdk, 使用flutter做客户端, 直接生成5端代码

开源组件依赖

  • mongodb or cassandra (离线消息存储 个人推荐cassandra)
  • kafka (消息队列)
  • redis (存储seq)
  • etcd (不依赖etcd)
  • mysql (不依赖mysql)

rancher 查看服务运行情况

  • 地址:rancher
  • 用户名:guest
  • 密码:guest

业务架构图

image1.svg

业务流程图

flow.svg

部署运行

docker-compose

目录:deploy/local/pathim-docker

  • !!!一定要先替换内网地址 目录下文件全部替换 替换ip地址10.1.3.12内网/公网ip
  • !!!一定要先替换内网地址 目录下文件全部替换 替换ip地址10.1.3.12内网/公网ip
  • !!!一定要先替换内网地址 目录下文件全部替换 替换ip地址10.1.3.12内网/公网ip

如何安装docker-compose

linux

wget https://github.91chi.fun//https://github.com//docker/compose/releases/download/v2.5.1/docker-compose-linux-x86_64
chmod +x docker-compose-linux-x86_64 && mv docker-compose-linux-x86_64 /usr/bin/docker-compose

依赖

cd deploy/local/pathim-docker/dependencies
docker-compose up -d

打开内网/公网ip:8081 进入kafka-ui 主动创建以下topic

  • im_msg
  • im_msg_push_single
  • im_msg_push_group
  • kick_conn

img.png

Path-IM-Server各服务

确定你要使用的离线消息存储 mongo/cassandra

假设你使用mongo做离线消息存储

  • 修改deploy/local/pathim-docker/msg-rpc.yaml --> HistoryDBType:mongo
  • 删除 deploy/local/pathim-docker/docker-compose.yamlmsgtransfer-history-cassandra服务

假设你使用cassandra做离线消息存储

  • 修改deploy/local/pathim-docker/msg-rpc.yaml --> HistoryDBType:cassandra
  • 删除 deploy/local/pathim-docker/docker-compose.yamlmsgtransfer-history-mongo服务
cd deploy/local/pathim-docker
docker-compose up -d

服务运行情况

docker ps

img.png

jaeger

打开内网/公网ip:16686 进入jaeger-ui img.png

源码部署

编译命令

go build -o bin .

Dockerfile

FROM showurl/zerobase
WORKDIR /app
COPY ./bin /app/zeroservice
RUN chmod +x /app/zeroservice && mkdir /app/etc
CMD ["/app/zeroservice"]

docker容器中运行

docker run -v ./xxx.yaml:/app/etc/xxx.yaml your-image:tag
Open Source Agenda is not affiliated with "Path IM Server" Project. README Source: Path-IM/Path-IM-Server
Stars
74
Open Issues
0
Last Commit
1 year ago
License

Open Source Agenda Badge

Open Source Agenda Rating