V
主页
参与开源社区 OpenIM 项目 api->rpc->db 调用,新手如何参与开源社区贡献代码教程
发布人
欢迎各位来到 OpenIMSDK 双周会!我是 Xinwei Xiong,今天我要给大家详细介绍一下 OpenIMSDK server 这个项目。OpenIMSDK server 是一个开源的高性能即时通讯服务器,支持 iOS、Android、Web 等多个端同时数十万用户在线。它采用 Golang 语言开发,基于微服务架构设计。OpenIMSDK server 整个项目分为多个独立的微服务,各个微服务之间通过 gRPC 通讯。OpenIMSDK server 的主要技术栈有:1. Golang - 采用 Golang 语言开发,性能高并发友好,单机支持数十万连接 GitHub 地址 :https://github.com/OpenIMSDK/Open-IM-Server/ 2. gRPC - 微服务之间的通讯采用 gRPC,高效支持跨语言调用 3. Protobuf - gRPC 的数据序列化格式采用 Protobuf,序列化和反序列化高效 4. MySQL - 消息持久化存储使用 MySQL,支持高性能读写 5. Redis - 消息序列号和 token 信息存储使用 Redis,支持高性能读写 6. Kafka - 消息队列采用 Kafka,支持高吞吐量消息传输 7. ETCD - 服务注册和发现使用 ETCD,支持动态扩容服务OpenIMSDK server 的主要架构包括:1. API Server - 提供 HTTP API 供客户端调用,接收客户端请求并返回响应 2. LongConn Server - 提供 WebSocket 长连接,实时处理客户端消息,支持高性能推送 3. Message Transfer - 消息转发服务,转发消息到不同的 LongConn Server,支持大规模消息广播 4. Offline Server - 离线消息推送服务,支持给离线用户推送消息 5. IMDB Server - 消息持久化和关系持久化服务,将消息持久化存储并建立用户关系OpenIMSDK server 项目的主要难点在于:1. 高性能 - 需要支持海量用户同时在线和高并发消息传输,单机支持数十万连接 2. 高可扩展 - 需要支持动态水平扩展,方便增加机器部署更多服务,满足高并发场景 3. 消息持久化 - 需要确保消息不丢失,并支持消息持久化,同时支持高性能读写 4. 离线推送 - 需要支持给离线用户推送消息,及时将重要消息推送给用户OpenIMSDK server 是一个开源项目,我们欢迎更多的开发者加入,共同为推动即时通讯技术发展做贡献!我们定期在双周会上讨论项目的发展和技术难点,也欢迎各位开发者在 GitHub 上提交 Issue 或 PR,给予项目宝贵的意见和帮助。希望各位对 OpenIMSDK server 项目感兴趣,我们是开源社区,需要更多的贡献者加入,共同推动项目的发展!谢谢大家! OpenIM 是一款基于 Go 语言开发的即时通讯系统。我们倡导开源精神,项目代码完全开源,遵循 Apache2.0 协议。OpenIM 项目启动两年来,我们致力于为开发者和企业提供一个简单、高效、稳定的即时通讯解决方案。双周会期间,项目运维成员会分享项目最新进展,核心开发者会深入剖析项目的技术实现,还会解读即时通讯项目的商业落地及生态建设情况。这是一次技术交流和思想碰撞的好机会。我们诚挚邀请各位开源爱好者一同参与,让我们一起推动中国开源事业的发展。积极主动地参与开源社区,不仅可以学习到先进的技术和获取项目实战经验,还可以结识更多志同道合的朋友,拓展人脉,发现更多可能。OpenIM 项目双周会与哔哩哔哩平台的结合,进一步降低了开发者和技术爱好者参会的门槛,让更多人走进开源社区。
打开封面
下载高清视频
观看高清视频
视频下载器
深入探索开源项目 OpenIM:开源即时通讯的未来 | 项目结构、服务器端设计与代码解析
上手参与开源社区 OpenIMSDK server 的项目架构和技术难点
OpenIM 社区:学习开源项目,如何为开源项目做贡献
OpenIM 集群化部署讨论会记录二 | 自动化设计 开源项目的集群化部署方案设计 - 设计稿 - 设计思路 - kubernetes | helm chat
OpenIM 集群化部署讨论会记录三 | 自动化设计 开源项目的集群化部署方案设计 - 设计稿 - 设计思路 - kubernetes | helm chat
(详细讲解 OpenIM 源码部署,Docker Compose 以及 Kubernetes部署)从零到一:OpenIM源码部署与Linux生产环境管理实战教程
全面解析OpenIM: 深入部署、监控与压测策略 - OpenIM双周会详细纪要
OpenIM Mac部署全攻略:实战教学视频 | 手把手教会贡献者 Mac 部署并且贡献代码
OpenIM 双周会精华:揭秘v3.4版本新特性与未来展望
RFC: OpenIM 自动化测试设计方案
OpenIM 集群化部署讨论会记录 | 开源项目的集群化部署方案设计 - 设计稿 - 设计思路 - kubernetes | helm chat
TM-2023-07-17-OpenIM 【历史性里程碑】OpenIM Release-v3.0发布——开启全新发布流程和项目代码规范! 以及贡献者 指南 约定
开源智能客服项目 OpenKF 第一阶段讨论会回放 - 第一阶段工作和任务划分
【热播回放】Bilibili上的OpenIM社区开发者双周会精彩瞬间以及技术讲解,共创美好开源
(详细讲解 OpenIM 源码部署,Docker Compose 以及 Kubernetes部署)Kubernetes: 无缝部署和管理OpenIM
Termius - Local Terminal 2023-07-19 OpenKF 开源项目 & 社区(oepnim)内部讨论会
【热播回放 2023-09-21】后半部分:Bilibili上的OpenIM社区开发者双周会精彩瞬间以及技术讲解,共创美好开源
基于知识图谱、大模型、rag的李白项目, 新增agent工具调用(tool call)
汇编语言讲解:loop指令
OpenIM团队双周视频会议:AI技术探索与OpenIM平台未来发展方向
TM-2023-08-17-OpenIM 数据中心 ! OpenIM Release-v3.2发布——贡献者答疑
【OpenIM双周会】 TM-2023-08-24 【历史性里程碑】OpenIM Release-v3.2发布—深入解析OpenIM 3.2版本及对接文档
冒死上传(已被开除)【目前B站最完整的计算机网络基础】超实用教程,就靠这个了!
github开源项目的质量元数据徽章,打造花样readme,让你的GitHub项目更加让人喜欢。可以很容易地包含在 GitHub 自述文件或任何其他网页中。
汇编语言讲解,GitHub项目推荐 2022-08-09
GitHub优质项目推荐,计算机专业学习指南,汇编语言的学习 -- 汇编语言的执行过程
【李宏毅】2024年公认最好的【机器学习】教程!从入门到进阶,一套全解决!2024机器学习算法-附带课件代码
Blender4.2 卡通形象入门案例教程 | 新手必刷+全流程案例 奶凶小厨小企鹅
FreeRTOS+CubeMX手把手全过程实操教程
斯达普智慧停车项目
1panel开心版?之社区版waf日志功能使用!
【全548集】字节大佬终于把Python做成了动画片,通俗易懂,2024最新版!学完即就业!拿走不谢,学不会我退出IT圈!
【CogVideo】一键包 文生视频魔改视频转绘 开源社区的意义
Docker零基础入门到精通教程(全34集)
GitHub开源awesome系列知识分享,golang,java 📚 菜鸟成长手册🚀 CS系列 、web系列 、BlockChain系列、web3系列🔥
自己动手实现一个内网穿透2:功能与设计
2024版】一天学会微信小程序+前后端开发,从搭建到项目上线全流程_学会轻松搭建自己的小程序_前端项目_小程序开发_web项目_前端项目_购物小程序_在线购物
[科技周报] 一张照片替换视频人脸;Go 技术负责人转投 AI;Nodejs 中调用 Rust
大一C语言经典游戏项目—飞机大战(附源码+教程),带你从零开始做出一个小游戏!
react最新教程