Coder Social home page Coder Social logo

glideim's Introduction

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

glideim's People

Contributors

dengzii avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.