查看原文
其他

我大三时做的羞耻项目!

鱼皮 程序员鱼皮 2022-08-14

大学时期独立开发的作品分享

大家好,我是鱼皮,最近翻留言,发现有不少小伙伴想了解下我大学时做过的项目,必须安排!

下面就分享我在大三下学期时独立开发的 羞耻 项目 —— 分布式邮件调度平台。

为什么用 “羞耻” 来形容呢?往下看。

项目背景

这个项目是为了一年一度的计算机应用能力大赛而准备的参赛作品。因为大二时只拿了三等奖,所以想在大三时扳回一城,于是强行拉了两名室友和我一起报名,准备搞个大计划。

结果呢,因为当时在字节跳动实习,其他空余时间都在刷算法和深入学习 Java 后端,就导致快到比赛结束了才想起来 提交 开始做作品。

所以,最后只花了 7 天左右,就把这个作品赶出来了。不仅没有经过充分的测试,写出来的代码也比较粗糙,来不及优化,换言之就是 能跑就行 ,或者能在 PPT 上展示、有个截图就行。

自己现在回想起来,真的是忘记了自己报名比赛时的豪言壮志。

项目介绍

由于大二参赛时做了一个大而全的项目《校园二手交易平台》,所以这次想做个 技术 + 应用 相结合的项目,本来的项目名是 “邮件发送平台”,太 low,就改名为 “分布式邮件调度平台”,瞬间高大上了许多~

为啥要做这玩意儿呢?

给用户发邮件是开发中很常见的功能。如今技术日新月异,各种框架层出不穷,但是定时邮件、延迟邮件、事件触发邮件等功能需要自己实现,较为复杂;且在邮件数量过多,网络不稳定等因素时,我们很难对发送邮件的结果以及历史进行一个统计管理。

因此我想要通过简洁的界面去集中管理邮件的发送、自动回复、失败重发,并且能够对历史邮件进行统一的日志记录和查看。

集中管理邮件调度

对于现在的分布式应用,单机的 “邮件调度平台” 已经难以满足性能需求,因此需要 分布式 ,利用 RPC 远程调用实现各独立应用与主服务器的交互。

其实整个系统的设计很像开发一个分布式任务调度平台,只不过更专注于邮件而已。

技术栈

这是一个前后端兼备的全栈项目。

在技术的选型上,前端使用主流的 Vue 框架、Element UI 组件库,并通过秘技 IceWork 快速生成前端页面,要不然 7 天光前端都写不完!

后端就用主流的  Java SpringBoot,用 Quartz 实现定时任务调度、用 Java Mail 实现邮件发送等。由于时间紧急,也没有用关系型数据库,大部分数据都直接在内存用 HashMap 和 Redis 存储了。

此外,为了保障服务端的稳定性,用时序数据库 InfluxDB + Grafana 搭了一个应用监控。

Grafana 应用监控

项目演示

用图文来展示项目没那个味儿,所以我特地录制了视频,并且上传到小破站了,欢迎大家观看~

视频地址:https://www.bilibili.com/video/BV1t54y177qs/

(或者点击文章下方 阅读原文 直达)

项目截图

项目资料

虽然由于时间紧,导致项目做得并不完善,但应该还是有值得参考的地方,索性就将项目的设计文档、答辩 PPT 还有所有的源代码全部给大家!

在我的公众号 程序员鱼皮 后台回复【邮件系统】就可以领取了~

仅供大家学习参考,请勿抄袭和随意传播哦。



⬇️ 点击下方阅读原文也可直达项目演示视频,欢迎观看 ❤️

我是鱼皮,点赞 + 在看 还是要求一下的,祝大家都能心想事成、发大财、行大运。

往期推荐

送老弟去大厂面试,全中!

我两年的坚持,值了!

网站搜索大优化!

远程开发,确实爽!

5 分钟!我上线了新网站!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存