当前位置: 首页 > news >正文

关键词免费网站如何优化网站代码

关键词免费网站,如何优化网站代码,石家庄城市建设档案馆网站,南阳教育论坛网站建设目录 1.项目架构图 1. 项目架构图 1.1 一些概念 1.2 项目架构图 2. 分布式文件系统 2.1 传统文件系统 2.2 分布式文件系统 3. FastDFS 3.1 fastDFS介绍 3.2 fastDFS安装 3.3 fastDFS配置文件 3.4 fastDFS的启动 4. fastDFS状态检测 4.1 对file_id的解释 4. 2上传…

目录

1.项目架构图

1. 项目架构图

1.1 一些概念

1.2 项目架构图

2. 分布式文件系统

2.1 传统文件系统

2.2 分布式文件系统

3. FastDFS

3.1 fastDFS介绍

3.2 fastDFS安装

3.3 fastDFS配置文件

3.4 fastDFS的启动

4. fastDFS状态检测

4.1 对file_id的解释

4. 2上传下载代码实现

5. 源码安装 - 回顾


1.项目架构图

        

1. 项目架构图

1.1 一些概念

  1. 什么是服务器

    • 硬件: 一台配置高的电脑
    • 软件: 电脑必须有一个能够解析http协议的软件
  2. 常见的Web服务器

    • tomcat服务器

      • apache组织产品, 开源的免费服务器
    • weblogic 服务器

      • bea公司, 收费的服务器
      • 不交费, 访问量受限制
    • IIS服务器

      • Internet Information Server

      • 微软公司主推的服务器

    • nginx

      • 小巧且高效的HTTP服务器
      • 也可以做一个高效的负载均衡反向代理
      • 邮件服务器
        • pop3/smtp/imap

1.2 项目架构图

        

 

 

1. 客户端

   - 网络架构:

     - b/s

       - 必须使用http协议

     - c/s

       - 协议可以随意选择

       - Qt -> http

2. 服务器

   - Nginx

     - 能处理静态请求 -> html, jpg

     - 动态请求无法处理

     - 服务器集群之后, 每台服务器上部署的内容必须相同

   - fastCGI

     - 帮助服务器处理动态请求

3. 反向代理服务器

   - 客户端并不能直接访问web服务器, 直接访问到的是反向代理服务器

   - 客户端静请求发送给反向代理服务器, 反向代理将客户端请求转发给web服务器

4. 关系型数据库

   - 存储文件属性信息

   - 用户的属性信息

5. redis - 非关系型数据库 (内存数据库)

   - 作用提出程序效率

   - 存储是服务器经常要从关系型数据中读取的数据

6. FASTDFS - 分布式文件系统

   - 存储文件内容

   - 供用户下载

2. 分布式文件系统

2.1 传统文件系统

- 传统的文件系统格式:

  - ntfs / fat32 / ext3 / ext4

- 可以被挂载和卸载

2.2 分布式文件系统

> 文件系统的全部, 不在同一台主机上,而是在很多台主机上,多个分散的文件系统组合在一起,形成了一个完整的文件系统。

分布式文件系统:

 1. 需要有网络

   2. 多台主机

     - 不需要在同一地点

> 3. 需要管理者

> 4. 编写应用层的管理程序

     - 不需要编写

        

3. FastDFS

3.1 fastDFS介绍

1. fastDFS概述

   > - 是用**c语言**编写的一款开源的分布式文件系统。

   >   - 余庆 - 淘宝的架构师

   > - 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,注重高可用、高性能等指标

   >   - 冗余备份: 纵向扩容

   >   - 线性扩容: 横向扩容

   > - 可以很容易搭建一套高性能的文件服务器集群提供文件==**上传、下载**==等服务。

   >   - 图床

   >   - 网盘

2. fastDFS框架中的三个角色

   - 追踪器 ( Tracker ) - 管理者 - 守护进程

     - 管理存储节点

   - 存储节点 - storage - 守护进程

     - 存储节点是有多个的

   - 客户端 - 不是守护进程, 这是程序猿编写的程序

     - 文件上传

     - 文件下载

3. fastDFS三个角色之间的关系

 

 

1. 追踪器

      - 最先启动追踪器

   2. 存储节点

      - 第二个启动的角色

      - 存储节点启动之后, 会单独开一个线程

        - 汇报当前存储节点的容量, 和剩余容量

        - 汇报数据的同步情况

        - 汇报数据被下载的次数

   3. 客户端

      - 最后启动

        - 上传

          - 连接追踪器, 询问存储节点的信息

            - 我要上传1G的文件, 询问那个存储节点有足够的容量

            - 追踪器查询, 得到结果

            - 追踪器将查到的存储节点的IP+端口发送给客户端

            - 通过得到IP和端口连接存储节点

            - 将文件内容发送给存储节点

        - 下载

          - 连接追踪器, 询问存储节点的信息

            - 问一下, 要下载的文件在哪一个存储节点

            - 追踪器查询, 得到结果

            - 追踪器将查到的存储节点的IP+端口发送给客户端

            - 通过得到IP和端口连接存储节点

            - 下载文件

4. fastDFS集群

 

1. 追踪器集群

  •       - 为什么集群?
  •         - 避免单点故障
  •       - 多个Tracker如何工作?
  •         - 轮询工作
  •       - 如何实现集群?
  •         - 修改配置文件

   2. 存储节点集群

  •       - fastDFS管理存储节点的方式?
  •         - 通过分组的方式完成的
  •       - 集群方式(扩容方式)
  •         - 横向扩容 - 增加容量
  •           - 添加一台新的主机 -> 容量增加了
  •           - 假设当前有两个组: group1, group2
  •             - 需要添加一个新的分组 -> group3
  •               - 新主机属于第三组
  •           - 不同组的主机之间不需要通信
  •         - 纵向扩容 - 数据备份
  •           - 假设当前有两个组: group1, group2
  •             - 将新的主机放到现有的组中
  •             - 每个组的主机数量从1 -> N
  •               - 这n台主机的关系就是相互备份的关系
  •               - 同一个组中的主机需要通信
  •               - 每组的容量 == 容量最小的这台主机
  •       - 如何实现?
  •         - 通过修改配置文件可实现

3.2 fastDFS安装

1. fastDFS安装

   - libfastcommon-1.36.zip

     - fastdfs的基础库包

     - unzip xxx.zip

     - ./make.sh

     - ./make.sh install

   - fastdfs-5.10.tar.gz

     - tar zxvf xxx.tar.gz(x表示解压缩,z 表示gz)

     - ./make.sh

     - ./make.sh install

2. 测试

   ```shell

   #fastDFS安装的所有的可执行程序:

   /usr/bin/fdfs_*

   fdfs_test

   ```

        进入到root用户 sudo su-   退出exit

1. fastDFS安装

   - libfastcommon-1.36.zip

     - fastdfs的基础库包

     - unzip xxx.zip

     - ./make.sh

     - ./make.sh install

   - fastdfs-5.10.tar.gz

     - tar zxvf xxx.tar.gz(x表示解压缩,z 表示gz)

     - ./make.sh

     - ./make.sh install

2. 测试

   ```shell

   #fastDFS安装的所有的可执行程序:

   ls /usr/bin/fdfs_*

   (ls fdfs_* 是一个命令,用于列出以 "fdfs_" 开头的文件或目录)

   fdfs_test

   ```

 

3.3 fastDFS配置文件

配置文件默认位置:  /etc/fdfs

 

> client.conf.sample  storage.conf.sample  storage_ids.conf.sample  tracker.conf.sample

1. tracker 配置文件

   ```shell

   # 将追踪器和部署的主机的IP地址进程绑定, 也可以不指定

   # 如果不指定, 会自动绑定当前主机IP, 如果是云服务器建议不要写(ctrl+shift +v )在vi 编辑器里面复制内容

   bind_addr=192.168.247.135

   # 追踪器监听的端口

   port=22122

   # 追踪器存储日志信息的目录, xxx.pid文件, 必须是一个存在的目录

   base_path=/home/yuqing/fastdfs

   ```

2. storage 配置文件

   ```shell

   # 当前存储节点对应的主机属于哪一个组

   group_name=group1

   # 当前存储节点和所应该的主机进行IP地址的绑定, 如果不写, 有fastdfs自动绑定

   bind_addr=

   # 存储节点绑定的端口

   port=23000

   # 存储节点写log日志的路径

   base_path=/home/yuqing/fastdfs

   # 存储节点提供的存储文件的路径个数

   store_path_count=2

   # 具体的存储路径

   store_path0=/home/yuqing/fastdfs

   store_path1=/home/yuqing/fastdfs1

   # 追踪器的地址信息

   tracker_server=192.168.247.135:22122

   tracker_server=192.168.247.136:22122

   ```

3. 客户端配置文件

   ```shell

   # 客户端写log日志的目录

   # 该路径必须存在

   # 当前的用户对于该路径中的文件有读写权限

   # 当前用户robin

   # 指定的路径属于root

   base_path=/home/yuqing/fastdfs

   # 要连接的追踪器的地址信息

   tracker_server=192.168.247.135:22122

   tracker_server=192.168.247.136:22122

   ```

vi 编辑器撤销的快捷键

在Vi编辑器中,撤销操作通常由以下快捷键完成:

  1. 撤销上一步操作:

    • 在普通模式下,按下 u 键。
  2. 撤销多个操作:

    • 在普通模式下,输入数字加上 u 键。例如,要撤销最近的两个操作,可以按下 2u

请注意,撤销操作是逐步递减的,意味着每次按下 u 键,都会撤销先前的操作,直到没有更多的操作可撤销为止。

如果你误操作或者需要撤销更多的步骤,你可以重复按下 u 键来连续执行撤销操作。记住,这些操作都是在普通模式下完成的。

总结:

  • 进入普通模式。
  • 按下 u 键来逐步撤销操作。
  • 按下数字加上 u 键来撤销多个操作。

这些快捷键可帮助你在Vi编辑器中轻松地进行撤销操作。

vi 编辑器反撤销的快捷键

在Vi编辑器中,反撤销操作通常由以下快捷键完成:

  1. 反撤销上一步操作:
    • 在普通模式下,按下 Ctrl + r 键。

与撤销操作类似,反撤销操作也是逐步递减的。每次按下 Ctrl + r 键,都会重新应用之前被撤销的操作,直到没有更多的操作可反撤销为止。

请注意,反撤销操作是在普通模式下完成的。

总结:

  • 进入普通模式。
  • 按下 Ctrl + r 键来逐步进行反撤销操作。

这些快捷键可以帮助你在Vi编辑器中进行反撤销操作,恢复之前被撤销的更改

 

 

3.4 fastDFS的启动

1. 第一个启动追踪器  - 守护进程

   ```shell

   # 启动程序在 /usr/bin/fdfs_*

   # 启动

   fdfs_trackerd 追踪器的配置文件(/etc/fdfs/tracker.conf)

   # 关闭

   fdfs_trackerd 追踪器的配置文件(/etc/fdfs/tracker.conf)  stop

   # 重启

   fdfs_trackerd 追踪器的配置文件(/etc/fdfs/tracker.conf) restart

   ```

查看

ps aux|grep fdfs_*

2. 第二个启动存储节点 - 守护进程

   ```shell

   # 启动

   fdfs_storaged 存储节点的配置文件(/etc/fdfs/stroga.conf)

   # 关闭

   fdfs_storaged 存储节点的配置文件(/etc/fdfs/stroga.conf) stop

   # 重启

   fdfs_storaged 存储节点的配置文件(/etc/fdfs/stroga.conf) restart

   ```

3. 最后启动客户端 - 普通进程

   ```shell

   # 上传

   fdfs_upload_file 客户端的配置文件(/etc/fdfs/client.conf) 要上传的文件

 

 

 

   # 得到的结果字符串: group1/M00/00/00/wKj3h1vC-PuAJ09iAAAHT1YnUNE31352.c

   # 下载

   fdfs_download_file 客户端的配置文件(/etc/fdfs/client.conf) 上传成功之后得到的字符串(fileID)

   ```

4. fastDFS状态检测

    - 命令

      ```shell

      fdfs_monitor /etc/fdfs/client.conf

      ```

    - [Storage Server的7种状态](https://blog.csdn.net/u014723529/article/details/46048411)

      https://blog.csdn.net/u014723529/article/details/46048411

      ```shell

      # FDFS_STORAGE_STATUS:INIT      :初始化,尚未得到同步已有数据的源服务器

      # FDFS_STORAGE_STATUS:WAIT_SYNC :等待同步,已得到同步已有数据的源服务器

      # FDFS_STORAGE_STATUS:SYNCING   :同步中

      # FDFS_STORAGE_STATUS:DELETED   :已删除,该服务器从本组中摘除

      # FDFS_STORAGE_STATUS:OFFLINE   :离线

      # FDFS_STORAGE_STATUS:ONLINE    :在线,尚不能提供服务

      # FDFS_STORAGE_STATUS:ACTIVE    :在线,可以提供服务

      ```

 

4.1 对file_id的解释

        

  • - group1

  - 文件上传到了存储节点的哪一个组

  - 如果有多个组这个组名可变的

  • - M00 - 虚拟目录

  - 和存储节点的配置项有映射

    - store_path0=/home/yuqing/fastdfs/data    ->  M00

      store_path1=/home/yuqing/fastdfs1/data   -> M01

  • - 00/00

  - 实际的路径

  - 可变的

- wKhS_VlrEfOAdIZyAAAJTOwCGr43848.md

  - 文件名包含的信息

  - 采用Base64编码

    - 包含的字段包括

      - 源storage server Ip 地址  

      - 文件创建时间  

      - 文件大小  

      - 文件CRC32效验码

        - 循环冗余校验  

      - 随机数

4. 2上传下载代码实现

1. 使用多进程方式实现

   - exec函数族函数

     - execl

     - execlp

  •    - 父进程

     - 子进程 -> 执行

       execlp("fdfs_upload_file" , "xx", arg, NULL), 有结果输出, 输出到终端

       - 不让它写到终端 -> 重定向dup2(old, new)

         - old-> 标准输出

         - new -> 管道的写端

         - 文件描述符

         - 数据块读到内存 -> 子进程

                   - 数据最终要给到父进程

       - pipe -> 读端, 写端

         - 在子进程创建之前创建就行了

  •      - 父进程

       - 读管道 -> 内存

       - 内存数据写数据库

2. 使用fastDFS API实现

     

5. 源码安装 - 回顾

安装流程:

1. 以下文件, 里边有安装步骤

   - readme

   - readme.md

   - INSTALL

2. 找 可执行文件 <font color=green>configure</font>

   - 执行这个可执行文件

     - 检测安装环境

     - 生成 makefile

3. 执行**make**命令

   - 编译源代码

     - 生成了动态库

     - 静态库

     - 可执行程序

4. 安装 **make install** (需要管理员权限)

   - 将第三步生成的动态库/动态库/可执行程序拷贝到对应的系统目录

 

http://www.yayakq.cn/news/325435/

相关文章:

  • 汕头网站开发服务seo管理与优化期末试题
  • 重庆免费网站制作营销策划公司经营范围
  • 合肥 网站建设公司哪家好如何开办网站
  • 好的室内设计网站推荐网站建设征求意见分析报告
  • 网站后台安全性配置php网站建设工程师
  • 扬州专注企业网站建设装修设计网站排行榜前十名
  • 医药网站备案企业简介封面设计
  • 网站优化入门张家口手机台app下载
  • 西安网站设设建筑网站免费
  • 宜昌网站制作公司排名品牌营销活动策划方案
  • 南部县网站建设公司嘉兴app开发公司
  • 营销型网站的好处seo的作用
  • 广州网站优化平台河南省人事考试网
  • 免费发布信息网站大全下载安装工程项目管理软件app
  • asp网站开发视频巢湖路桥建设集团网站
  • 公司建立网站的目的jquery网站开发教程
  • 网站的基本类型网站建设安全
  • 网站框架怎么搭建莒南县建设工程网站
  • 怎么做淘宝网站步骤天津做网站的公
  • 长沙企业网站建设案例有一套源码做网站还差什么
  • 广州网站建设+美词wordpress后台太卡
  • 无二制造 网站升级建设中深圳市住房和建设局网站下载
  • 做临时工有哪些网站广河网站建设
  • 网站优化插件新手织梦网建设网站
  • 做影视网站用什么源码开发公司空置房物管费归口什么费用
  • 平安网站建设发挥了积极的作用住房和城乡建设部网站造价师
  • 购物网站开发小结哈尔滨优化网站方法
  • 哪个网站可以接项目做建设部网站注册人员
  • 京东网站建设策划书安卓程序下载安装
  • 做电脑系统最好的网站网站怎么做优化推广