码迷,mamicode.com
首页 > 其他好文 > 详细

项目 - 云盘项目(整体流程)

时间:2019-11-29 17:03:18      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:主机   字符串   二进制   prot   定位   代理   tracker   集群   键值   

项目架构:

client(客户端)---nginx(负载均衡、反向代理)---nginx(web服务器、文件上传下载业务逻辑、fastCGI编程)---mysql(存储用户信息)+redis(缓存)+fastFDS(开源文件系统、存储到硬盘)

 

fastFDS框架:client(上传下载者)---tracker(管理者)---storage(存储节点)

fastFDS集群:client(大量访问)、tracker(防止单点故障)、storage(稳定性:同组备份、扩展性:不同组扩容)

 

//

redis使用:

 数据结构:

  string字符串(最基本数据类型)

  list列表(类似数组)

  set集合(会自行排序、去重)

  sortedset有序集合(按设定权重自动排序,去重)

  hash哈希(键值对,存有多个字段的对象)。

 对key(类似表名)操作:

  keys(配合通配符使用):列出当前数据库中的key

  type / rename:看key的数据类型 / 重命名key

  del / exists:删除 / 查看是否存在

  expire / ttl / persist:设定生存时间 / 查看剩余时间 / 去除生存时间。

 其他功能:发布/订阅,事务(隔离,原子操作)。

 持久化配置:

  快照(rdb文件):将内存里面的数据以二进制形式拷贝到硬盘上;

  追加文件(AOF):存储不是二进制数据而是对redis的操作指令。

 编程操作数据库流程(编程需要进行封装):

  初始化+连接 redisConnect

  执行命令  redisCommand

  查看返回值 redisReply

  清理指针  freeReplyObject、清理句柄  redisFree。

 

nginx使用:(用作:http服务器,email服务器,反向代理,负载均衡)

 常用命令:帮助nginx -h;向nginx发送某个信号nginx -s signal;测试配置文件nginx -t;指定配置文件 -c

 nginx服务中master/worker机制:master进程做管理,worker进程干活(处理外部请求)

 nginx部署静态站点:修改localtion,服务器上被访问地址/内容 = root + location

 虚拟主机:nginx支持部署多个站点,同时部署多个站点(法1 通过不同端口,法2 同一端口不同http请求头)

  域名和IP:ipv4为点分十进制表示法表示4个字节的ip地址(一个域名对一个ip,一个ip可被多个域名绑定)

  通过域名寻找IP:法1 找本机的hosts文件添加【ip   域名】,法2 找DNS添加【ip   域名】

 反向代理:外网机子通过代理访问内网某台机子(正向代理:概念相反)

  配置:需要另外一台装有nginx服务器,使用【location下的属性proxy_pass】

//

环境搭建:

CentOS、

0、安装 gcc编译器

  yum -y install gcc gcc-c++ kernel-devel    //安装gcc、c++编译器以及内核文件

  https://www.cnblogs.com/xiyushimei/p/8550930.html

0、安装 配置 mysql:

  https://www.cnblogs.com/h-gallop/p/11645965.html

  https://blog.csdn.net/xiaolong_4_2/article/details/81664582

0、安装 配置 启动 fastFDS:

  源码下载:github阿里开源项目

  源码安装:先安装libfastcommom,再安装fastFDS

  配置文件位置 /etc/fdfs/ :配置tracker.conf,storage.conf,client.conf

  启动顺序:先启动tracker,再启动storage,最后测试一下

  客户端常用命令:upload上传,download下载,delete删除,info查看文件信息,monitor查看tracker信息

 0、安装  配置 启动 redis:

  源码下载并安装:make编译,make install安装

  配置redis.conf:【bind---ip】【port---端口】【protected---远程保护】【damonize---是否守护进程】

     【tcp-backlog---tcp连接个数】【timeout---客户端超时连接】【databases---数据库个数】

  启动服务:redis-server(没有指定配置文件就使用默认配置)

  编程所需库:源码自带hiredis,需编译安装hiredis,包含头文件和库文件即可

 0、安装 配置 nginx:

  源码下载:下载依赖(pcre库、zlib库、openssl库),下载nginx,并全部解压

  源码安装:找到nginx目录下nginx/configure,配置库路径,编译,安装

  启动服务:创建 /usr/local/nginx/sbin/nginx 软连接到 /user/local/bin,启动nginx

  开启访问端口:防火墙的原因 https://blog.csdn.net/qq_40543961/article/details/79654230

  配置nginx.conf:配置文件有特定语法,其中模块区分【http 配置http服务器】【mail 配置email服务器】;

    user【master进程和worker进程用户都改为root】,worker_processes【配置worker进程数】,

    error_log【配置错误日志】,event【模块 优化性能】,http【模块 默认使用数据类型 访问日志】,

    server【模块/对外提供站点配置 [listen监听ip:port] [server_name 服务器域名] [charset 字符集]

    [location 模块/定位目录/除去ip和port后的路径   属性:root资源目录,index资源目录下的文件]】

  

//

项目 - 云盘项目(整体流程)

标签:主机   字符串   二进制   prot   定位   代理   tracker   集群   键值   

原文地址:https://www.cnblogs.com/citrus/p/11942697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!