Path-IM-Server

module
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2022 License: Apache-2.0

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 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

Directories

Path Synopsis
app
msg-gateway/cmd/wsrpc/internal/handler
Code generated by goctl.
Code generated by goctl.
msg-gateway/cmd/wsrpc/internal/types
Code generated by goctl.
Code generated by goctl.
common

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL