开发者社区> 问答> 正文

这样的数据缓存CND加速负载均衡主从数据库方案不知道是否可行。

方案如下:
1,购买杭州节点云主机2台


2,用2台云主机的memcache分布式缓存方式,缓存网页数据,解决PHP动态网页的速度瓶颈。


3,用2台云服务器其中的一台做CDN节点,加速(同机房可能用处不大)


4,开通SLB负载均衡,或用Nginx做负载均衡。缓解单台主机压力。


5,用其中一台主机的数据库做从数据库。用主从数据库结构来释放单数据库压力。




不知道这样的方案是否可行。。。


大牛们给点意见吧。。

展开
收起
sonla 2013-06-17 21:05:34 13545 0
6 条回答
写回答
取消 提交回答
  • Re这样的数据缓存CND加速负载均衡主从数据库方案不知道是否可行。
    SLB吧
    2013-06-20 14:24:16
    赞同 展开评论 打赏
  • 页面缓存,不建议在应用程使用MEMCACHED,直接使用nginx proxy_cache到/dev/shm/比缓存到memcached效率更高。

    -------------------------

    回 16楼(sonla) 的帖子
    这点你也不必担心,如果是动态页面,在proxy_cache_key加上$http_cookie值即可。

    -------------------------

    回 18楼(cevin) 的帖子
    那就只缓存$cookie_winduser类似的。。。

    -------------------------

    回 20楼(cevin) 的帖子
    亲的想法与我一样同,我所维护过的商业网站,全部都是使用这种缓存方式,无视99%的CC攻击,而且运行效率非常高

    -------------------------

    回 23楼(cevin) 的帖子
    看具体的业务,必要时可以针对高消耗的入口设置白名单GET参数。。。
    这就有点道高一尺魔高一丈的味道了(千万别让别人知道你的逻辑。。。)。。。
    2013-06-20 13:15:44
    赞同 展开评论 打赏
  • Re这样的数据缓存CND加速负载均衡主从数据库方案不知道是否可行。
    2,用2台云主机的memcache分布式缓存方式,缓存网页数据,解决PHP动态网页的速度瓶颈。
    3,用2台云服务器其中的一台做CDN节点,加速(同机房可能用处不大)
    4,开通SLB负载均衡,或用Nginx做负载均衡。缓解单台主机压力。
    5,用其中一台主机的数据库做从数据库。用主从数据库结构来释放单数据库压力。

    2:动态数据无法缓存,与其Memcache不如Nginx直接做proxy了。
    3:无用功
    4:SLB就够。rsync同步数据
    5:阿里云的硬盘做数据库会死

    -------------------------

    回7楼sonla的帖子
    Memcache是用来缓存数据的。而不是静态页面。再者,考虑到静态页面中可能会包含较实时数据,所以Memcache缓存静态页面不靠谱。而且,伪静态的本质是动态。

    阿里云的硬盘写速度是16MB/s,读多少忘了,当然这是在我的服务器行测的,不一定精准。

    以上言论仅作参考。

    -------------------------

    回9楼sonla的帖子
    伪静态本质动态

    -------------------------

    回9楼sonla的帖子
    页面缓存是分场景的。

    如果是discuz或phpwind等类似的程序,缓存了页面,也就是说当有人发表新贴或回复帖子的时候,用户打开页面,看到的实际上是之前的缓存页面。而非新的数据。

    -------------------------

    回12楼sonla的帖子
    再次强调,伪静态就是动态,否则也不会加个“伪”字了。

    其次,nginx的优势是在linux平台,基于linux 2.5.4 以上内核特有的epoll事件驱动。除了nginx外,lighttpd也是同样的。

    nginx的优势主要体现在零碎小文件,比如网站的css、js、图片等类型,与后端通信的是fastcgi协议,比如discuz等php类型的网站,是php在后端的php-fpm进程在处理php脚本,而不是nginx,nginx只是负责把请求哪个文件,传递哪些参数给php-fpm,php-fpm负责去解析php脚本然后将最终结果输出给nginx,nginx再输出给浏览器。

    -------------------------

    回13楼sonla的帖子
    如果不担心时效性的问题,那nginx的proxy_cache完全可行。其他的问题不用担心。

    -------------------------

    回17楼enj0y的帖子
    这倒也是个不错的办法。

    但是如果cookie中存在有不定的常变变量值呢?

    -------------------------

    回19楼enj0y的帖子
    这就完美了。游客没有uid,所有访客访问的都是统一页面,已登陆用户看到的信息还是属于较为实时的。

    -------------------------

    回21楼enj0y的帖子
    可惜就是牺牲了实时性

    -------------------------

    回21楼enj0y的帖子
    还有就是安全问题如果cache_key是$host$request_uri$cookie_user的话。我不断的构造随机get参数,缓存不是无效了……

    -------------------------

    回24楼enj0y的帖子
    商品搜索页面捏……呃,我多虑了,电商没的缓存
    2013-06-20 13:13:15
    赞同 展开评论 打赏
  • Re这样的数据缓存CND加速负载均衡主从数据库方案不知道是否可行。
    引用第1楼gdliwt于2013-06-17 21:06发表的  :
    脱衣版主快点现身,你拿手的项目来了。

    用业余的眼光看,云主机用主从?用RDS不是更好吗?

    RDS不能均衡负载,不能分布式缓存。只能针对数据库优化,价格和一台云主机的价格差不多。还是2台云主机划算一点,可以做的事情更多一点。

    -------------------------

    回4楼cevin的帖子
    Memcache缓存伪静态网页是否有用,类似dz伪静态的。另外用阿里云的硬盘做数据库能承受多少流量。请指教!

    -------------------------

    回5楼enj0y的帖子
    懂你意思了,用nginx proxy_cache把页面缓存到类似物理内存中,不从硬盘读取数据。

    但是Memcache也是缓存到内存中,而我要使用Apache php伪静态(70%) 动态(30%)程序。完全没有静态页面。感觉用nginx并不是很好。毕竟nginx对伪静态和动态处理方面没有Apache好使。

    -------------------------

    回8楼cevin的帖子
    我考虑过用nginx,但是页面全是动态和伪静态的,据说nginx对动态支持不是很友好。迷茫了。

    -------------------------

    Re回9楼sonla的帖子
    引用第11楼cevin于2013-06-20 16:28发表的 回9楼sonla的帖子 :
    页面缓存是分场景的。

    如果是discuz或phpwind等类似的程序,缓存了页面,也就是说当有人发表新贴或回复帖子的时候,用户打开页面,看到的实际上是之前的缓存页面。而非新的数据。

    这方面倒不担心,我用的程序没有论坛那么强的时效性,我比较担心页面缓存的效果和数据库的执行效率。想找个比较好的缓存方案。

    -------------------------

    回15楼cevin的帖子
    明白了,非常感谢 。
    2013-06-17 21:13:10
    赞同 展开评论 打赏
  • 貌似这边流行SLB
    2013-06-17 21:07:05
    赞同 展开评论 打赏
  • 脱衣版主快点现身,你拿手的项目来了。

    用业余的眼光看,云主机用主从?用RDS不是更好吗?
    2013-06-17 21:06:53
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
用户态高速块缓存方案 立即下载
传统负载均衡助力AIOps闭环 立即下载
高性能Web架构之缓存体系 立即下载