最新版本说明
首先,非常感谢您访问,该作品的初衷在于分享、学习和交流(也是为了时刻提醒自己保持对技术的热衷,实践才是检验真理的唯一标准),因为周末空余时间有限,目前仍在开发中。当然,如果您有宝贵的意见和建议,欢迎提出或私信
系统迭代历史
2017 06 基于ssm单体版的微型论坛(大学时选修课课程设计,后续基于此反复迭代)
2018.03 基于ssm的分布式微型论坛(毕设原创第一名与申请获得软著)
2020.01-06 基于springboot的微交流学习平台
2020.09-2021.03 基于springboot的微交流学习平台增强版
2021.04-06(基于dubbo+vue前后端分离的微服务架构)
2023.03~05(springcloud+vue,全面改版和升级功能和技术)
2023.12~至今(基于Docker+spring cloud alibaba的微服务架构以及工作技术积累沉底)
项目说明
项目托管在多个第三方管理平台,采用微服务架构。基于DockerFile,目前分布和部署于4台服务器上
系统架构划分
实践才是检验整理的唯一标准,以下为个人作品真实架构,后期会按微服务标准持续集成和丰富架构
项目微服务架构脑图
项目工程说明
基于Docker云服务
项目亮点,后续会在公众号或博客中介绍设计思路或实现方案
- 如何实现sso?
- 如何实现开放平台接口?
- 如何在sso基础上兼容各种三方授权登录?
- 如何实现短信服务、邮箱注册、忘记密码等(基于MQ和redis以及模板)?
- 如何实现签到以及PV,UV统计,阶梯密码控制?
- 如何实现业务日志统一portal管理(基于MQ和自研源码jar)?
- 基于JDK封装一套函数式线程池
- 如何实现分布式锁、限流、幂等(基于redis+lua)?
- 如何实现数据库字段修改系统自动检测发送变更消息?
- 如何实现类似excel列设置和权限的一套功能(自研基于spring源码和解释器模式的一套体系)?
其它有趣的功能待集成(如基于字节码增强、spring源码设计思想扩展等等)
项目真实部署说明
华纳云(香港)
blog-sso(单点登录)
主要包括后管服务系统统一登录与身份认证且支持多种登录方式(如短信、用户名密码、邮箱等)
portal-gateway(网关服务)
主要包括后管服务请求转发(app与system服务),一些公共服务(如验证码、谷歌翻译、gpt、短信、邮件验证码、开放平台接口(如号码归属地、附件上传等等)等)
v-blog(base.jar) 前台网站服务 基于freemarker
主要包括博文展示、搜索服务、算法展示和执行、在线编程等
由于精力和时间有限(算法展示后续完善)
阿里云
portal-system (portal公共服务)
主要包括后管权限功能(如用户、角色、菜单、日志以及一些公共的服务和对外开放平台服务等等)
blog-app (基于DDD架构的业务系统)
主要包括业务系统对应的功能,如博文、链接、算法管理、列设置、表监控等等
引入自研框架类jar、portal-api与easy-boot.jar,做到只关注业务功能
blog-rpc (rpc远程服务)
目前只包括算法建模接口,后续有时间持续扩展功能接口
自研框架类jar
portal-api(公共权限jar)
主要包括对业务系统的权限管理以及一些portal公共服务
easy-boot(骨架工程jar)
自研研究的非业务组件,主要包括集成和统一spring cloud、一些核心功能如分布式锁、日志组件、线程池组件、限流、mybatis组件等等,并严格按照框架代码标准去持续集成,做到开箱即用,零侵权等等
因为精力和工作经验有限,目前只对mybatis和redis做了相关增强,其它功能后期持续集成
后管前端服务
blog-admin-vue (基于vue-admin-template二次开发)
主要包括后管服务的所有功能,通过JPOM+Nginx自动化构建和部署
其它java服务
xxl-job(执行系统定时任务)
主要包括定时刷新表结构变更记录、日志迁移处理等等
zipkin服务(收集各个微服务的链路日志)
阿里云(8G)
cannel 服务
主要通过通过mysql binlog日志自动同步博文表数据到es,保证数据一致性。
运维管理(主要基于docker)
同时,JPOM中增加邮箱告警,如某个服务挂掉后,通过cron自动重启服务并通知
服务性能监控
除了用arthas去监控和观测同时各个服务都加入zipkin去监控链路
(也可以用阿里云的arms(实际工作中用这个,更全功能更强大)
最后
兴趣是最大的老师,让学习成为一种习惯。
有兴趣的朋友可以进行注册或者手机号登录去玩玩
后期笔者将不断集成新功能和技术以及在公众后、作品中进行个人文章发布和学习,敬请关注和期待与关注