Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jon177/GlideIM

Repository files navigation

Glide-IM

i

Go Report Card

README-EN

简介

微信交流群

本项目是我在 高性能IM, 微服务, 分布式, 项目架构等方面从零基础开始的一次实践, 希望可以给你带来一些帮助.

立即体验

安卓体验 APP 下载

GlideIM Web (TODO)

相关仓库

前端示例项目源码

Android 端示例项目源码及 SDK

Java SDK

项目构建

环境依赖

单实例模式

  • Redis
  • MySQL

分布式模式

  • ETCD: ./cmd/script/etcd
  • NSQ: ./cmd/script/nsq

入口

目录 ./cmd/run 下为不同模式下的入口, 目录名即为服务/模式

  • 分布式相关入口
    • api_rpc API 服务
    • dispatch 消息分发服务
    • gateway 用户连接, 网关服务
    • group 群聊服务
    • messaging 消息路由服务
  • HTTP API
    • api_http 通过 HTTP 服务访问 API 接口
  • 单实例运行
    • singleton

编译 .proto

项目中提交的 /protobuf/gen 目录就是已经编译好的 go 源码.

/protobuf/compile.sh

单实例运行

为了方便调试, 部分情况下只需要单实例运行即可, 例如调试客户端, 消息收发流程, 分布式部署的调试要部署整个流程是比较麻烦的, 所以一般是每个服务单独调试.

go run ./cmd/run/singleton/main.go

单实例可执行文件运行

如果觉得编译麻烦, 或者依赖出问题, 这里有编译好的.

这个是已经编译好的 Linux x64 环境下的单例模式可执行文件, 只需要在配置文件中改一下数据库相关即可运行.

Windows 环境在 Releases 中下载即可.

wget https://raw.githubusercontent.com/Glide-IM/Glide-IM/master/cmd/script/glide_im/fast_deploy.sh && chmod +x fast_deploy.sh && ./fast_deploy.sh 

性能

单机支持约 20w(4万消息吞吐量) 活跃用户同时聊天(100Mbps), 查看测试数据

系统架构

介绍文章: GlideIM - Golang 实现的高性能的分布式 IM

i

讨论群

  • 微信群

i

特别鸣谢

JetBrains

License

参见 LICENSE

About

分布式高性能 IM

Resources

License

Stars

Watchers

Forks

Packages

Contributors

Languages

  • Go 99.0%
  • Other 1.0%

AltStyle によって変換されたページ (->オリジナル) /