又一个涵盖前后端 +DevOps+OpenAI 大模型的高并发项目启动了
大家好,我是冰河~~
今天,正式通知大家一件事情:又到了启动新项目的时候,这也是 冰河技术 知识星球继 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)。详情可以点击放大下图进行查看。
好了,今天就到这儿吧,我是冰河,我们下期见~~
版权声明: 本文为 InfoQ 作者【冰河】的原创文章。
原文链接:【http://xie.infoq.cn/article/e5f38542007cc271fbb179588】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论