大家好,我是冰河~~
今天,正式通知大家一件事情:又到了启动新项目的时候,这也是 冰河技术 知识星球继 Seckill秒杀系统 项目后,又一个高并发实战项目。星球其他项目与专栏,大家可移步到冰河的个人站点:https://binghe.gitcode.host 进行查看。
那这次又是怎样的一个高并发项目呢?没错,这次就是大家期待已久的分布式IM即时通讯系统,在分布式IM即时通讯系统中,我们会实现:单聊、群聊、图片、文件、语音、视频、历史消息、消息已读、未读、添加好友、删除好友、创建群、加群、退出群、查看群成员、群公告、修改群备注等一系列完整的功能,更会实现对接OpenAI大模型服务,让你深度掌握对接OpenAI大模型服务的流程和落地实现。
一、项目介绍
本项目是一个基于前后端+Dev-Ops的分布式IM即时通讯实战项目,基于VUE+SpringBoot+各种分布式技术栈+OpenResty+Swarm+Portainer+Grafana+Prometheus+Docker服务,集需求、架构设计、开发、部署、上线、运维、监控于一体的分布式IM即时通讯系统。
1.对比网上系统
那这个系统跟网上的IM系统有啥区别呢?网上大部分IM系统基本都是单机的,无法支持分布式扩展,并且是一个个demo,根本无法真正拿到线上环境运行,更无法真正投产使用。
这可能是你职业生涯中最具含金量的一次点击,点击【查看更多】了解冰河技术知识星球更多硬核技术和优质项目。
虽然能够通过网上demo级别的IM项目学到一些即时通讯相关的知识,但是不够全面,也不够系统化,出现问题后,也没有人会为你解答,更没有人带你去全面、系统化的学习,到头来,只是学了个demo,仅此而已。
这次咱们启动的分布式IM即时通讯系统,首先,从项目的名称上就可以看出来,它是支持分布式的,可以在线上环境无限扩展,并且考虑到真实环境下即时通讯的需求,冰河会将整个分布式IM即时通讯系统分为五大部分:即时通讯后端服务、大后端平台、SDK接入服务、OpenAI接入服务、大前端UI。
如果小伙伴们公司或个人项目有接入即时通讯的需求,可以无缝对接SDK即可快速接入IM即时通讯功能。
可以这么说,在冰河技术知识星球,小伙伴们不仅可以全面、系统化的学习到一个可以在线上真实环境运行的分布式IM系统,还能基于SDK接入服务快速将自己公司或者个人项目接入IM即时通讯功能,这就是项目的高度可扩展的一种体现。
另外,分布式IM即时通讯系统还会实现对接OpenAI大模型服务,让你深度掌握对接OpenAI大模型服务的流程和落地实现。
2.项目工程
3.服务监控
这是秒杀系统压测过程中的JVM监控图,后续也会将分布式IM即时通讯系统接入进来。
项目只有部署到真实环境压测,真实运行起来让用户使用,才能发现项目中的细节问题,而这些,仅仅靠学习demo,写demo项目是永远无法被发现的。
二、能学到哪些技术?
前端:基于VUE开发完整的分布式IM前端页面,实现各项功能开发。
前端:熟练掌握跨域请求接口的实现方式与开发技巧。
前端:熟练掌握WebSocket实现即时通讯的方案和落地实现,并能够掌握断线重连、心跳等实现。
前端:熟练掌握Git、GitCode,对代码工程的管理、新建代码分支、灵活切换代码分支、拉取与推送代码、合并代码等。
后端:熟练掌握基于DDD领域驱动设计开发项目,并能够基于DDD快速搭建后端服务。
后端:熟练掌握SpringBoot、MyBatis、Mybatis-Plus等开发框架的使用,并对源码有深度的理解,能够基于源码扩展相应的功能。
后端:熟练掌握Netty WebSocket与TCP网络编程,掌握Netty的内存模型、IO多路复用、ChannelPipeline等。
后端:熟练掌握项目中使用的多种设计模式,并能够将设计模式灵活应用到自身实际项目中。
后端:熟练应用各种分布式技术栈,包括但不限于:SpringCloud、SpringCloud Alibaba、Dubbo、Nacos、RocketMQ、ShardingSphere、ELK(Elasticsearch、Logstash、Kibana)。
后端:掌握将真实场景需求转化成架构设计的方法论,架构设计原则、系统边界划分与维护。
后端:熟练掌握单元测试、JMeter压力测试工具,持续交付高质量代码。
后端:合理打印日志,熟练掌握日志可视化治理的方案,掌握分布式系统下的链路追踪方案。
后端:熟练掌握Git、GitCode,对代码工程的管理、新建代码分支、灵活切换代码分支、拉取与推送代码、合并代码等。
运维:熟练掌握Docker的部署与各种Docker命令,掌握Docker前后端镜像的构建。
运维:熟练掌握Git、GitCode,对代码工程的管理、新建代码分支、灵活切换代码分支、拉取与推送代码、合并代码等。
运维:熟练掌握OpenResty的配置与运维,并能够基于OpenResty配置长链接转发、配置SSL与WSS协议等。、
运维:熟练掌握使用Grafana、Prometheus对系统进行监控,包含:JVM、服务器内存、磁盘、IO、数据库、中间件、应用服务(QPS、TPS、TTL、访问量等)的完整链路监控。
冰河会为分布式IM即时通讯系统录制完整的视频,将整个系统的需求、设计、思考、落地实现、编码等录制成视频,供大家更好的学习,掌握更深层次的知识、技术以及思考的过程。
三、适应人群
本项目来自于真实互联网业务需求,从零开始,以渐进式的方式,经过需求分析、架构设计、编码实现、部署上线、运维监控等全流程实现,最终交付一个可在真实场景运行的、支持对接OpenAI大模型的分布式IM即时通讯高并发系统项目。
- 校招、社招没什么拿的出手的项目,投出的简历石沉大海。
- 想自己开发一套IM即时通讯系统,但不知从何下手,网上的IM系统不成体系,无法提升自己。
- 一直在小公司做CRUD,并发编程没接触过,更别提如何开发高并发实际项目了。
- 公司项目没什么并发,在线人数也不多,学了很多并发编程相关的知识不知道怎么用。
- 学了很多并发编程的知识,也知道一些概念,能说出一些简单的方案,但是没实际项目经验。
- 自我感觉掌握了一些高并发编程的技术方案,但是如果真正做项目时,还是不知道如何下手。
- 简历上写了熟悉并发编程,在面试过程中,面试官一般会问高并发项目实战问题,不知道怎么回答。
- 在大厂工作多年,参与了一些系统的建设与研发,但是也没机会参与高并发、大流量的系统的整个建设过程。
- 其他问题。。。
四、系统大纲
分布式IM即时通讯系统不同于其他项目,在大纲层面与其他系统有所区别,总体上暂时会分成如下几部分(可能会随着系统的不断完善有所调整):需求设计、后端服务、SDK接入服务、大后端平台、OpenAI大模型接入服务、大前端UI、部署与监控等几部分。
第1部分:需求设计
- 第1节:为何要学习分布式IM即时通讯系统
- 第2节:分布式IM即时通讯系统的目标与挑战
- 第3节:...
第2部分:后端服务
- 第1节:后端服务的设计
- 第2节:...
第3部分:SDK接入服务
- 第1节:SDK接入服务的设计
- 第2节:...
第4部分:大后端平台
- 第1节:大后端平台功能设计
- 第2节:...
第5部分:OpenAI大模型接入服务
- 第1节:对接ChatGPT流程设计
- 第2节:对接ChatGPT功能实现
- 第3节:...
第6部分:大前端UI
- 第1节:Web页面工程搭建与初始化
- 第2节:Web页面结构化设计
- 第3节:...
第7部分:部署与监控
- 第1节:Docker环境搭建
- 第2节:Portainer环境搭建
- 第3节...
整体课程采用视频+小册+源码+1v1问答形式,加入星球即可加入专属交流群,并且星球提供了简历优化服务,还为大家准备了1000+精美简历模板,助力小伙伴们升职加薪,让你在面试过程中更具竞争力。
五、如何学习
分布式IM即时通讯系统是冰河技术知识星球诸多项目中的其中一个,还有很多其他项目,例如:简易商城脚手架项目、Seckill秒杀系统、高并发设计模式等等,还有开源项目、技术小册、1000+精美简历模板与面试技巧等(加入星球后直戳链接:https://t.zsxq.com/140wNNbz9)。详情可以点击放大下图进行查看。
好了,今天就到这儿吧,我是冰河,我们下期见~~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。