SpringCloud+Netty集群实战千万级 IM系统[完结14章]

144 阅读3分钟

资料地址1:pan.baidu.com/s/1gFU3mvPh… 提取码: vuc5 资料地址2:share.weiyun.com/kTMH6YBE 密码:92h8jm

一、IM即时通讯系统对开发技术有较高的要求,主要包括以下几个方面:

  1. 高可用性:系统需要保证高可用性,即在任何情况下都能保持通讯的稳定和顺畅。
  2. 高安全性:系统需要保证用户数据的安全性,防止数据泄露和攻击。
  3. 高拓展性:系统需要具备高拓展性,方便未来功能的扩展和升级。

二、开发 IM系统都需要用到什么技术呢? 即时通讯软件的开发实在算不上容易,因为在开发即时通讯软件的过程中牵扯到的可不仅仅是通讯技术,受到当前网络技术发展和网络信息安全保障等条件的影响,我们今天的即时通讯开发还需要牵扯到网络技术、保密技术以及P2P技术等多种技术类型。接下来让我们对它们进行简单的分析。

即时通讯的开发首先涉及到通讯技术。通讯技术是即时通讯中最为关键且重要的技术类型,现阶段的即时通讯除了需要传输文字、图片、短视频等媒体文件外,为了保证通讯的综合性还需要实现音视频语音对话的功能,也就对我们的通讯技术提出了更高的要求。在通讯技术使用中,设计人员需要进行视频、文字、音频等多种信息的信号编码录入和输出技术的应用,让通讯技术能够与网络相结合,从而完成即时通讯的过程。

网络技术也是即时通讯中不可缺少的内容。我们把即时通讯与传统通信技术相比较,就会发现即时通讯是一种将传统通信转移到网络系统中的新型通信方式,即时通讯中网络发挥的作用也不单单是网络基础连接和沟通,还有网络信号的传输速度和传输稳定性。即时通讯中如果网络传输速度慢,就会发生通信延迟的问题,如果传输不稳定就会发生卡顿等情况,影响我们的即时通讯过程,尤其在当前无线网络信号广泛应用的背景下,即时通讯的网络技术更是比较重要的内容。

三、 软件功能 在这里,我只需要如下几个功能即可:

  1. 能够打开本地音视频;
  2. 能够获取在线用户列表;
  3. 能够请求在线用户音视频,实现视频聊天;
  4. 能够发送文字聊天。

四、技术选型 后端技术选型 我们后端服务的构建充分利用了Rust的生态系统,主要采用以下技术和框架: Axum:一个高效的web框架,提供了强大的抽象,支持构建高性能的异步应用。 Tonic与gRPC:用于创建高性能的RPC服务,实现服务间高效通信。 Kafka:作为分布式消息队列,kafka处理大规模数据流同时保持高吞吐率。 PostgreSQL与SQLx:我们选择了PostgreSQL作为关系型数据库,搭配SQLx实现异步数据库操作。 MongoDB:作为非关系型数据库,用以处理更灵活的数据结构,及收件箱等特定功能的数据存储。 MinIO:一种高性能的对象存储解决方案,用于存储用户的文件和媒体资料。 Redis:作为缓存和消息中间件,实现快速数据读取和状态管理。 Consul:提供服务发现和配置,保持微服务的高可用性和弹性。

前端技术选型 在前端,我们选择了Yew框架,这是一个基于Rust的前端框架,可以编译成WebAssembly,从而在浏览器中提供接近原生的运行速度和更好的性能表现。