大家好,我是冰河~~

今天,正式通知大家一件事情:又到了启动新项目的时候,这也是 冰河技术 知识星球继 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)。详情可以点击放大下图进行查看。

好了,今天就到这儿吧,我是冰河,我们下期见~~

又一个涵盖前后端+DevOps+OpenAI大模型的高并发项目启动了的更多相关文章

  1. js页码生成库,一个适合前后端分离的页码生成器

    原文:js页码生成库,一个适合前后端分离的页码生成器 前言 上星期写的任务里面有需要进行分页的处理,git搜索了一番,没有觉得合适的,于是自己临时写了个分页的算法. 然后等闲下来的时候,决定把分页进行 ...

  2. 大数据量高并发的数据库优化详解(MSSQL)

    转载自:http://www.jb51.net/article/71041.htm 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能. ...

  3. 高并发解决方案--负载均衡(HTTP,DNS,反向代理服务器)(解决大流量,高并发)

    高并发解决方案--负载均衡(HTTP,DNS,反向代理服务器)(解决大流量,高并发) 一.总结 1.什么是负载均衡:当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能.那么,在服 ...

  4. PHP 网站大流量与高并发的解决方法

    php 网站如何应对大流量与高并发呢? 首先,确认服务器硬件是否足够支持当前的流量. 普通的P4服务器一般最多能支持每天10万地理IP,如果访问量比这个还要大,则请配置一台更高性能的专用服务器. 否则 ...

  5. MySQL在大数据、高并发场景下的SQL语句优化和"最佳实践"

    本文主要针对中小型应用或网站,重点探讨日常程序开发中SQL语句的优化问题,所谓“大数据”.“高并发”仅针对中小型应用而言,专业的数据库运维大神请无视.以下实践为个人在实际开发工作中,针对相对“大数据” ...

  6. 为一个支持GPRS的硬件设备搭建一台高并发服务器用什么开发比较容易?

    高并发服务器开发,硬件socket发送数据至服务器,服务器对数据进行判断,需要实现心跳以保持长连接. 同时还要接收另外一台服务器的消支付成功消息,接收到消息后控制硬件执行操作. 查了一些资料,java ...

  7. 关于.Net Core 前后端分离跨域请求时 ajax并发请求导致部分无法通过验证解决办法。

    项目中有这样一个页面.页面加载的时候会同时并发6个ajax请求去后端请求下拉框. 这样会导致每次都有1~2个“浏览器预请求”不通过. 浏览器为什么会自动发送“预请求”?请看以面连接 https://b ...

  8. PHP解决网站大流量与高并发

    1:硬件方面 普通的一个p4的服务器每天最多能支持大约10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力 软件怎么优化都是于事无补的.主要影响服务器的速度 有:网络-硬 ...

  9. PHP解决网站大数据大流量与高并发

    1:硬件方面 普通的一个p4的服务器每天最多能支持10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力软件怎么优化都是于事无补的.主要影响服务器的速度 有:网络-硬盘读写 ...

  10. DB开发之大数据量高并发的数据库优化

    一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. ...

随机推荐

  1. 部署安装maven和mvnd

    前言 maven是常见的java构建工具,优点是稳定可靠,缺点是构建太慢,maven-mvnd是maven的强化版,致力于提高构建速度,默认情况下,mvnd 使用多核CPU并行构建. 常见的java构 ...

  2. k8s实战案例之运行WordPress

    1.WordPress架构 LNMP案例之基于Nginx+PHP实现WordPress博客站点,要求Nginx+PHP运⾏在同⼀个Pod的不同容器;nginx主要作用是接入站点请求,如果请求静态资源n ...

  3. python flask 简单应用开发

    转载请注明出处: Flask 是一个基于 Python 的微型 Web 框架,它提供了一组简洁而强大的工具和库,用于构建 Web 应用程序.Flask 的主要作用是帮助开发者快速搭建轻量级的.灵活的 ...

  4. 原来你是这样的JAVA[05]--String

    1.从概念上讲,java字符串就是Unicode字符串. 2.字符串拼接 用指定分隔符拼接字符串数组时,使用StringJoiner或者String.join()更方便: 用StringJoiner拼 ...

  5. 重磅| Falcon 180B 正式在 Hugging Face Hub 上发布!

    引言 我们很高兴地宣布由 Technology Innovation Institute (TII) 训练的开源大模型 Falcon 180B 登陆 Hugging Face! Falcon 180B ...

  6. ES13 中11个令人惊叹的 JavaScript 新特性

    前言 与许多其他编程语言一样,JavaScript 也在不断发展.每年,该语言都会通过新功能变得更加强大,使开发人员能够编写更具表现力和简洁的代码. 小编今天就为大家介绍ES13中添加的最新功能,并查 ...

  7. MySQL-通过存储过程来添加和删除分区(List分区)

    1.背景原因 当前MySQL不支持在添加和删除分区时,使用IF NOT EXISTS和IF EXISTS.所以在执行调度任务时,直接通过ADD PARTITION和DROP PARTITION不可避免 ...

  8. 4.Autofac依赖注入初使用

    前面几篇文章只是初步搭建项目结构,那到底能否运行呢?(能是肯定的啦) 毕竟咱都NetCore了,所以依赖注入要搞起来.专业的解释我就不多说了,很多博客文章说的很详细(其实是我忘了那些术语怎么讲). 按 ...

  9. 编译nw-node版本的插件

    编译nw-node版本的插件 下载nwjs对应版本的nodejs 原始源码目录 yh@yh:~/addon$ tree . ├── addon.cc ├── binding.gyp ├── CppLi ...

  10. 彻底解决Chrome“请停用以开发者模式运行的扩展程序”提示(亲测整合)

    本站有大佬已写较全的解决方案(修改dll文件法) 原文链接 但是本人Chrome76版本不适用,匹配不到提示语,在知乎中找到修改注册表的方法可以解决 原文链接 最后附上一个谷歌访问助手吧 链接: ht ...