【云备份|| 日志 day1】项目认识 && 环境准备

简介: 【云备份|| 日志 day1】项目认识 && 环境准备

day1

项目总纲

云备份

实现目标

搭建环境

词汇解释

项目总纲

云备份

自动将本地计算机上指定文件夹中需要备份的文件上传备份到服务器中。并且能够随时通过浏览器进行查看并且下载,其中下载过程支持断点续传功能,而服务器也会对上传文件进行热点管理,将非热点文件进行压缩存储,节省磁盘空间

实现目标

这个云备份项目需要我们实现两端程序,其中包括部署在用户机的客户端程序,上传需要备份的文件,以及运行在服务器上的服务端程序,实现备份文件的存储和管理,两端合作实现总体的自动云备份功能。

1. 服务端程序负责功能

针对客户端上传的文件进行备份存储

能够对文件进行热点文件管理,对非热点文件进行压缩存储,节省磁盘空间。

支持客户端浏览器查看访问文件列表。

支持客户端浏览器下载文件,并且下载支持断点续传。

2. 服务端功能模块划分

数据管理模块:负责服务器上备份文件的信息管理。

网络通信模块:搭建网络通信服务器,实现与客户端通信。

业务处理模块:针对客户端的各个请求进行对应业务处理并响应结果。

热点管理模块:负责文件的热点判断,以及非热点文件的压缩存储。

3. 客户端程序负责功能

能够自动检测客户机指定文件夹中的文件,并判断是否需要备份

将需要备份的文件逐个上传到服务器

4. 客户端功能模块划分

数据管理模块:负责客户端备份的文件信息管理,通过这些数据可以确定一个文件是否需要备份。

文件检测模块:遍历获取指定文件夹中所有文件路径名称。

网络通信模块:搭建网络通信客户端,实现将文件数据备份上传到服务器

搭建环境

gcc升级7.3版本:

sudo yum install centos-release-scl-rh centos-release-scl//  安装语言信息
sudo yum install devtoolset-7-gcc devtoolset-7-gcc-c++  //安装高版本的gcc
source /opt/rh/devtoolset-7/enable   //加载配置文件
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc   //修改默认配置文件

查看gcc版本 :gcc -v

安装jsoncpp库:

sudo yum install epel-release
sudo yum install jsoncpp-devel

查看json的下载路径:ls /usr/include/jsoncpp/json/

下载bundle数据压缩库

sudo yum install git   //下载 git 工具
git clone https://github.com/r-lyeh-archived/bundle.git

下载 httplib 库

git clone https://github.com/yhirose/cpp-httplib.git

如果无法在shell访问github,我们可以去GitHub官网上下载这两个第三方库,下载至本地后,通过rz命令上传到服务器上。

词汇解释

断点续传功能

断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如果碰到网络故障,可以从已经上传或下载的部分开始继续上传下载未完成的部分,而没有必要从头开始上传下载。

相当于你下一个大型游戏,下到一半没有流量了,可以回家连上wife之后从当前进度继续下载。

热点管理

在这里的解释就是,对一些经常被访问的文件进行处理,以便更好的进行访问,不常访问的文件进行压缩处理。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
Java 开发工具 Windows
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
|
4月前
【云备份|| 日志 day6】文件业务处理模块
【云备份|| 日志 day6】文件业务处理模块
|
4月前
|
存储 JSON 数据管理
【云备份|| 日志 day4】文件信息管理模块
【云备份|| 日志 day4】文件信息管理模块
|
5月前
|
Java Docker 索引
微服务轮子项目(13) - 统一日志中心详解(docker安装部署)
微服务轮子项目(13) - 统一日志中心详解(docker安装部署)
84 0
|
6月前
|
Dubbo Java 应用服务中间件
项目中引进这玩意,排查日志又快又准
随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排错查日志的时候,因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。
|
5月前
|
canal 消息中间件 关系型数据库
微服务轮子项目(36) -Canal数据库日志解析消费
微服务轮子项目(36) -Canal数据库日志解析消费
62 0
|
4月前
|
Java Maven
maven 项目配置日志打印以及异常日志打印问题
maven 项目配置日志打印以及异常日志打印问题
59 0
|
4月前
|
SQL Java 数据库连接
SpringBoot项目中Mybatis不打印日志怎么办?
SpringBoot项目中Mybatis不打印日志怎么办?
162 0
|
4月前
|
存储 文件存储
【云备份|| 日志 day5】文件热点管理模块
【云备份|| 日志 day5】文件热点管理模块
|
4月前
|
JSON 数据格式
【云备份|| 日志 day3】服务端配置信息模块
【云备份|| 日志 day3】服务端配置信息模块
【云备份|| 日志 day3】服务端配置信息模块