CoralCDN是一种基于P2P方式的Web内容分发网络(Content Delivery Network),也被称为Content Distributed Network,以下是关于CoralCDN的详细介绍:
工作机制
1、DHT网络:
CoralCDN采用一种扩展的DHT(分布式哈希表)方式,称为DSHT(分布式松散哈希表),旨在解决DHT覆盖网中的局部性问题。
在Coral中,所有overlay中的节点会根据网络状况进行评估,并按照RTT(往返时延)自然划分为几个等级,默认为三级:L2(<20ms)、L1(<60ms)和L0(剩余的所有节点)。
完整的NodeID节点空间由SHA-1生成的160bit组成,但在查找和放置时,优先在L2上的节点进行DHT查找,若找不到合适的节点,则依次在L1层和L0层中查找。
2、组成部分:
Coral DNS Server (dnssrv):负责解析coralize URL,并返回Proxy的IP地址,这些proxies位于一个合适的cluster(即L2、L1、L0层)中,同时确保来自相同client的DNS请求不会离开这个cluster。
Coral Http Proxy (CoralProxy):设计主要考虑低延迟、高系统吞吐以及减轻源服务器负载,每个CoralProxy都尽可能“拉”网页来,如果client请求的URL不在本地cache中,则它们会在Coral中查找,并在DSHT中插入references告知系统自己有这个cache。
3、存储方式:
Coral采用Sloppy Storage方式,据称这种方式减少了hot-spot和tree saturation现象,在存储过程中,有两个阶段:“forward”和“reverse”,forward”操作失败,client会稍微回退一点,把这个值放到次远的节点上。
4、层次式操作:
Coral中的层次式操作意味着首先在RTT小的Cluster中进行查找和插入,如果失败,则转入下一层中,为了实现这种层次式操作方式,每次Coral RPC都需要返回发送者的Cluster信息。
代码量
Coral是用14,000行C++编写的。
dnssrv有2,000行代码。
HttpProxy有4,000行代码。
CoralCDN通过其独特的DHT网络、DNS服务器和Http代理组件,以及Sloppy Storage和层次式操作方式,提供了一种基于P2P的内容分发解决方案,尽管它可能不如谷歌等大型CDN快,但它是免费的,并且对于需要快速加载网站及其JavaScript组件的场景来说,是一个值得考虑的选择,需要注意的是,在使用外部CDN托管自定义JavaScript文件时,可能存在安全风险。
小伙伴们,上文介绍了“coral cdn”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1311322.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复