博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MiniCDN技术架构步骤详解
阅读量:5913 次
发布时间:2019-06-19

本文共 1014 字,大约阅读时间需要 3 分钟。

hot3.png

MiniCDN 使用了谷歌开源出来的 groupcache 框架,目前dl.google.com后台就用到了groupcache,性能而言远超那些squid或者nginx-proxy-cache.

groupcache 的数据获取过程很有意思,我把他翻译了过来

groupcache 的运行过程

查找foo.txt的过程(节点#5 是N个节点中的一个,每个节点的代码都是一样的)

  1. 判断foo.txt是否内存中,并且很热门(super hot),如果在就直接使用它

  2. 判断foo.txt是否在内存中,并且当前节点拥有它(译者注:一致性hash查到该文件属于节点#5),如果是就使用它

  3. 在所有的节点中, 如果foo.txt的拥有者是节点#5,就加载这个文件。如果其他请求(通过直接的,或者rpc请求),节点#5会阻塞该请求,直接加载完毕,然后给所有请求返回同样的结果。否则使用rpc请求到拥有者的节点,如果请求失败,就本地加载(译者注:这种方式比较慢)

 

架构

  • M: Manager

    1. 负责维护Peer的列表,每个peer会去Manager同步这个列表。

    2. 所有的请求会先请求到manager, 然后由manager重定向到不同的peer

  • P: Peer

    1. 提供文件的下载服务

    2. Peer之间会根据从manager拿到的peer列表,同步文件

Manager 与 Peer 是一对多的关系

[M] |`------+--------+---...... |       |        |[P]     [P]      [P]  ....

Run Manager

命令行启动

./minicdn -mirror http://localhost:5000 -addr :11000 -log cdn.log
  • 对网站http://localhost:5000进行镜像加速

  • 监听11000端口

  • 日志存储在cdn.log中

源站的所有下载地址,最好都改成这个http://localhost:5000/something

Run Peer

命令行启动

./minicdn -upstream http://localhost:11000 -addr :8001
  • 指定Server地址http://localhost:11000

  • 监听8001端口

转载于:https://my.oschina.net/linjiezang/blog/1377225

你可能感兴趣的文章
框架是什么,框架有什么用(转)
查看>>
集成测试
查看>>
[android] 手机卫士黑名单功能(列表展示)
查看>>
c3p0连接池配置
查看>>
对于I/O流中解压中遇到的问题
查看>>
问答项目---用户注册的那些事儿(JS验证)
查看>>
Android进阶篇-百度地图获取地理信息
查看>>
返回前一页并刷新页面方法
查看>>
2.3 InnoDB 体系架构
查看>>
linux系统配置之单一网卡配置多个不同网段IP(centos)
查看>>
不定宽高垂直居中分析
查看>>
项目管理学习笔记之二.工作分解
查看>>
C# PPT 为形状设置三维效果
查看>>
Android DecorView浅析
查看>>
C 双向链表
查看>>
LVM Linear vs Striped Logical Volumes
查看>>
Mysql主从备份和SQL语句的备份
查看>>
DEDECMS之三 首页、列表页怎么调用文章内容
查看>>
iOS开发多线程篇 09 —NSOperation简单介绍
查看>>
WINDOWS下调用GetTokenInformation的奇怪之处--两次调用
查看>>