前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot实现分布式微服务开发实战系列(八)

Spring Boot实现分布式微服务开发实战系列(八)

作者头像
攻城狮的那点事
发布2019-07-01 14:12:44
7330
发布2019-07-01 14:12:44
举报

SpringBoot分布式开发系列文章已经持续了一段时间了,每一篇都有核心内容讲给大家。比如:分环境部署配置及服务端口号统一配置,子模块版本号管理及第三方jar依赖管理,单点登录实现,接口安全(签名+令牌)及过滤器配置拦截,全局异常处理及日志打印、防SQL注入等。现在项目里只需添加你的业务代码,就可用于生产环境,同时项目源码也已共享到github。

但大家有没有发现,我讲了这么多,实际这个项目里还缺少一个最基本的服务功能。这也是我今天要给大家讲的内容了。那到底是什么呢?

文件系统,对每个项目来说几乎都必不可少。记着在N年前做传统项目时,文件起初是直接存储的项目里面的,后来慢慢通过配置运行项目的Tomact把文件从项目中分离了出去,存储到项目所在机器的磁盘上。不管怎么,这种存储完全受制于Web容器,肯定是不能使用于分布式环境。那么,我现在主要说说分布式文件系统FastDFS的的实现。

FastDFS服务搭建实现

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。它充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

FastDfs文件系统原理及搭建我不再过多的去介绍,我之前已有过一篇文章,里面有详细演示FastDFS文件服务系统的搭建,大家可以阅读参考:FastDFS文件服务器原理及搭建。现在我们直接进入项目,编写代码演示分布式文件系统FastDFS在项目里实现的文件上传下载。

首先在父级项目的pom里添加fastDFS的依赖。

版本号:1.26.2

再在公共模块lyn-common的pom里添加依赖

然后写FastDFS的文件上传服务Service接口。

Service接口实现:

在接口层(lyn-web)的properties配置里添加配置信息:

接口层的启动类里添加注解。

这里对过滤器有专门针对上传文件接口做了验证token处理。并在Aop里不对上传接口进行切面处理。

此刻,所有配置已完成,我们启动项目测试。

查看上传的图片:

存储文件路径处理

分布式文件服务已经实现,接下来你就可以上传文件实现你的业务代码了。那么文件的路径在数据库怎么存储呢?实际这个有经验的开发者基本都知道,文件路径存入数据库时要去掉域名,在接口查询出来又需要补全域名。为什么这样做呢?在我们的生产环境,一般文件肯定是带域名访问,比如我配的是http域名,但使用小程序后,分享时图片无法使用(不支持http域名下载),必须要用https才可正常使用,那我是不是得改文件访问域名呢。如果你把带域名的文件路径存到了数据库,那么是不是查出来的路劲无法访问了。所以,存储时去域名查询加域名这看似麻烦的操作,但在实际项目中更有利于日过的扩展和维护。编写的文件工具类:

添加数据时,去文件域名

查询时补全域名

今天讲了分布式文件系统的搭建及应用,希望能帮到那些正在准备开发或正在开发的小伙伴们。

推荐阅读:

Spring Boot实现分布式微服务开发实战系列(七)

Spring Boot实现分布式微服务开发实战系列(六)

Spring Boot实现分布式微服务开发实战系列(五)

Spring Boot实现分布式微服务开发实战系列(四)

下期文章:深入介绍项目的配置及相关优化,分布式微服务开发下的任务调度,事务处理更多相关内容。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 攻城狮的那点事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云 HDFS
云 HDFS(Cloud HDFS,CHDFS)为您提供标准 HDFS 访问协议,您无需更改现有代码,即可使用高可用、高可靠、多维度安全、分层命名空间的分布式文件系统。 只需几分钟,您就可以在云端创建和挂载 CHDFS,来实现您大数据存储需求。随着业务需求的变化,您可以实时扩展或缩减存储资源,CHDFS 存储空间无上限,满足您海量大数据存储与分析业务需求。此外,通过 CHDFS,您可以实现计算与存储分离,极大发挥计算资源灵活性,同时实现存储数据永久保存,降低您大数据分析资源成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档