参与开源社区 OpenIM 项目 api->rpc->db 调用,新手如何参与开源社区贡献代码教程

995
0
2023-06-09 09:14:55
正在缓冲...
点赞
投币
10
1
欢迎各位来到 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 项目双周会与哔哩哔哩平台的结合,进一步降低了开发者和技术爱好者参会的门槛,让更多人走进开源社区。
客服
顶部
赛事库 课堂 2021拜年纪