基于Vue+SpringCloud博客的设计与实现---分享本科毕业设计

1 篇文章 0 订阅
1 篇文章 0 订阅

1.简介

博主想分享自己大学Java四年学习所得,毕业设计包含我对Java的所学所得。关于我的毕业设计的前端设计都是模仿某云,某贴吧,CSND,某站,某Q,整个博客中心所有页面都是按照CSDN的结构写的在这里插入图片描述
在这里插入图片描述

2.博客的功能

关于博客的功能都有这些:

  • 1.用户的个人中心:用户的登录与注册的Token拦截,前后端都要拦截器拦截Token,当然也可以基于后端路由Zuul拦截Token,阿里云智能验证
  • 2.用户安全中心:QQ邮箱注册邮箱,阿里云短信API注册手机以及其他个人安全信息和调用安全认证服务的接口
  • 3.用户文件头像上传中心:博客所用到的所有的图片和用户头像的图片均用阿里云OSS文件服务器
  • 4.用户签到中心:持续签到和累计签到奖励机制,以及会员导致经验值增益不同的机制,有排名有特权还有每日博客任务。
  • 5.用户会员中心:SVIP与VIP两种,定时任务/RabbitMQ延迟队列/登录验证三种判定会员截止时间到期用邮箱去提醒用户
  • 6.用户支付中心:我的钱包和支付宝支付,内网穿透原理,原始支付的普通会员与二维码支付的超级会员,账单分页,Csv定制,消费图V-charts图表,优惠券,基于RabbitMQ延迟队列实现延迟业务
  • 7.用户博客中心:发布,更新,删除,评论,点赞,收藏,转发,文章排行榜。博客中心是我的博客的核心,分页和轮滑加载均实现,用Redisson来实现分布式锁控制文章
  • 8.搜索引擎中心:文章信息的增删改查,分页,高亮模糊排序查询,引进一个Elasticsearch只是存放一些不重要的文章信息和Zipkin跟踪API运行信息
  • 9.用户消息中心:WebSocket
  • 10.用户个人空间:博客云其实就是上传文件

3.Vue

Vue需要理解DOM布局绘制与Vue生命周期就可以,ES语法要也会一些,这是我自己画的Vue生命周期的图,看官方文档最好在这里插入图片描述

4.微服务与分布式

微服务是架构设计方式,分布式则涉及到的是机器部署,关于这俩都用共同的缺点:网络,总结微服务的运行机制有以下11条:
1.扩展机制:水平与垂直扩展
2.隔离机制:避免博客的一个业务占用太多资源导致服务的无法响应,会对其他博客业务造成影响,不要关联性太强,尽可能各干各的,其实微服务代码量也不少。
3.解耦原则:尽可能地使用合成复用原则来代替继承关系
4.限流机制(Zuul):限流可以在路由网关上面体现出来,根据不同的算法可以实现不同的负载均衡
5.降级机制:在核心业务运行时,牺牲一部分非核心的业务保证核心业务功能,稳定运行,当系统不可用时,需要给予用户一些提示。
6.熔断机制(Hystrix):在调用微服务请求时,添加fallback回退防止雪崩即可。
7.跟踪机制(Zipkin):博客API会产生数据指标,产生的数据需要用来观测,然后再做数据分析,对系统做个深度分析以便以后的功能扩充。
8.维护机制:博客的系统维护比较需要方便,压力与微服务的数量成正比。
9.补偿机制:如果发生网络问题导致博客业务数据不一致性的问题,需要补偿机制弥补用户。例如:RabbitMQ异步消息,补偿表和定时任务检测。
10.监控机制(Hystrix+Turbine):更多的是通过Hystrix监控各个微服务的运行指标,通过HTTP转递给开发者观看,也可以跟踪指标监控。
11.钓鱼机制:算是一种未雨绸缪,我在测试博客功能时,会适当关闭个微服务中心,把博客的异常或者补偿都要测试一下,防止在真实情况下出现炸裂情况,尽可能的在某个机器或某个微服务挂掉时,尽量不影响博客系统整体的高可用性,其实我就一个库一个机器,只是模拟了单机节点。

设计一个系统,如果采用了微服务的架构方式,我要怎么划分每一个业务(module),功能划分,控制高并发,扩展以后的功能,尽可能有错立马定位修改,有好的创意立马添加,放上就能用,拿掉尽可能不影响全部,最终这些业务再落到机器的实现上。
微服务修改任何东西其实都不费时间,但是加起来的代码也不少,它们之间都是通过HTTP轻量级等通信机制,数据库还可以选择好多种,每一个module都是独立然后一起组成整个系统

5.高可用

微服务注册组件也涉及到高可用,Eureka不更新了,后续迭代建议采用阿里的Nacos

6.SpringCloud

SpringCloud就是一个基于SpringBoot快速构建的工具框架集合
注意下,SpringCloud1.X中TurbineStream中启动port端口号有BUG,SpringBoot 2.X修复,升级到2.X后,对应的Hystrix也出现问题,需要修改stream路径,除了这些,尽可能用Google,否则你的监控轮盘都看不见在这里插入图片描述

7.分布式锁

概念来说:对Java分布式锁来说,对于不同的机器产生的不同JVM虚拟机之间需要资源共享,这个时候就需要用到分布式锁来进行控制

8.项目的代码GitHub地址

基于Vue+SpringCloud博客的设计与实现

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值