mysql 动静分离_如何动静分离?「建议收藏」

mysql 动静分离_如何动静分离?「建议收藏」某次面试,hiremanager问我如何做一个大规模的网站,我把我所知道的都讲了,包括squid做的cdncache等等,他又问我,你觉得cdn这部分有什么瓶颈吗?我当时只想到所有动静态请求都路过squid,只是苦苦想着如何去掉动态的请求,他接着问,如何实现?我当时真想不到办法了。后来突然想起看的介绍,实际上我也接触过的,域名分离即可。比如某client的某个请求包含http:/xxx.com…

大家好,又见面了,我是你们的朋友全栈君。

某次面试,hire manager问我如何做一个大规模的网站,我把我所知道的都讲了,包括squid做的cdn cache等等,他又问我,你觉得cdn这部分有什么瓶颈吗?我当时只想到所有动静态请求都路过squid,只是苦苦想着如何去掉动态的请求,他接着问,如何实现?我当时真想不到办法了。后来突然想起看的介绍,实际上我也接触过的,域名分离即可。比如某client的某个请求包含http:/xxx.com,这里肯定包含了图片,css,html之类,也少不了动态脚本比如php,jsp等需要交互的sql查询,那么涉及到静态的部分,按照dns的策略,到squid上,走之前的路,而动态的直接回web源即可。

这个也不是没有弊端,程序里涉及到静态资源连接如图片等一律写域名。比如

echo “this is sina corporation logo picture :

f6d6d5bb0265c45f40a518b61bed208d.gif“;

?>

fine ,it works now,看到了sina的logo,以此类推,只需要遵守html语法规则,在你想要的地方插入图片url,而这图片放在另外的server上,有单独的domain,可以cname到cdn上,这样你打开www.sina.com,凡是需要查询的走10.1.1.1,涉及到图片的,直接走http协议到pic 服务器上取,好伟大的html啊。动静就这样分离了,唯一需要确认的就是图片的url要正确,可以在pic前面放api,专门查询后端的图片位置,仅此而已。

再扩展一下:

$url=”http://i3.sinaimg.cn/home/deco/2009/0330/logo_home.gif”;

echo “this is sina corporation logo picture :

%24url“;

?>

这样图片url确定了,少量的图片前端开发还能写上去,但成千上万张呢?还有这样固定了,也不方便扩展啊?如何来做?需要在pic前开一个API给前端调用,比如这里/home/deco/2009/0330/logo_home.gif可以记录在mysql,然后前端需要的时候,直接select 数据库查到图片的存储路径,然后拼接成$url给前端。

就是sql=select * from pic_table where ‘条件=xxx’;

把查询结果/home/deco/2009/0330/logo_home.gif赋给$path

拼凑新的url,$url=”http://i3.sinaimg.cn”.$path;

ok,图片链接完成。

简述结束。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131957.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java过滤器CharacterEncodingFilter位置问题。[通俗易懂]

    Java过滤器CharacterEncodingFilter位置问题。[通俗易懂]转:https://segmentfault.com/a/1190000006184156前人就有的经验在开发javaweb应用的时候经常会遇到令人头痛的字符编码问题,期中一个就是客户端发送过来的请求的编码在请求头里并没有,开发人员需要在后端自己选择合适的encoding来解析request过来的参数。这个问题的解决办法很简单,就是写一个filter来过滤所有请求,然后设置一下req…

    2022年7月12日
  • securecrt乱码解决方法[通俗易懂]

    设置securecrt属性。问题securecrt连接某台linux机器显示中文乱码解决方法菜单下option->sessionoption1.选择图中属性结构中Emulation属性,修改terminal改成linux2.选择Appearance,在字符集属性中选择utf-8(具体要根据linux环境而定)…

    2022年4月10日
  • python对字符串中指定字符进行替换[通俗易懂]

    python对字符串中指定字符进行替换[通俗易懂](1)替换指定的所有字符:string.replace(‘a’,‘b’)表示将字符串string中所有字符为’a’的替换为’b’。例子string=”abcabcabc”string=string.replace(‘a’,’b’)print(string)输出bbcbbcbbc(2)替换指定位置i的字符为字符s:列表化字符串再以字符串形式输出例子i,s…

    2022年6月7日
  • V-rep学习笔记:切削

    V-rep学习笔记:切削

    2022年4月3日
  • GoLand 2022.01.4激活码(JetBrains全家桶)

    (GoLand 2022.01.4激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlGTRPTN90LV-eyJsaWNlbnNlSW…

    2022年3月31日
  • GPIB-VC编程

    GPIB-VC编程CompilingandLinkingVISAPrograms(C/C++)Thissectionprovidesasummaryofimportantcompiler-specificconsiderationswhendevelopingWin32applications.1.LinkingtoVISALibrariesYourapp

    2022年6月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号