zoukankan      html  css  js  c++  java
  • 58和百姓网的技术学习

    http://v.youku.com/v_show/id_XMzc4OTA4MDky.html  58使用mongdb


    http://v.youku.com/v_show/id_XMzM4MDYwNTQw.html 赶集网。

    http://v.youku.com/v_show/id_XMzQxNDk1MDYw.html 去哪儿网搜索

    只有最适合的。没有最好的。

    预算是1万个并发。假设当时来了10万个并发,导致网站打不开。怎么应对:
    做一些队列。路由算法。存储领域做到扩展。存储领域难的问题是扩展方面。水平,均匀的分散到多个节点上去。节点冗余的必要性,容灾。

    58:mysql在使用,mongdb也在使用。帖子(就是发布的信息)排序,放在数据库中是不能满足需求的。
    之前用的mysql。
    分库策略:按照用户id取模,取hash值进行切分。随机数的跳跃性较大,对数据库影响大。
    一般是以时间为基准来进行分片。当时从安全性,可控性。还是考虑了传统的方案mysql。
    帖子点击数:招聘,简历下载次数等。做成了一个通用性的mongdb存储。

    要考虑可控性:为什么不用其他的nosql,偏偏选择mongdb?因为其他系统虽然了解,但是不会使用。
    考虑过渡性:从以前的sql转换到mongdb不用能够平滑过渡。思考要做到线性扩展,比如加一个分片,需要手动去部署。

    cdn为解决问题:网络传输会有损害,距离越远损害越大。有延迟。cdn是为减少网络延迟。
    图片保存多份的问题,需要很大的数据存储量。他们为了解决这个问题,用户可以传递参数我们实时生成图片。java 和c++



    http://www.infoq.com/cn/presentations/pxl-baixing-optimize-network-speed
    百姓网:
    在程序中放一段代码。记录每次sql查询所用的时间。如果超过预期,则保存下来,这样能够避免以后这种sql集中起来。在线上能够把问题解决掉。
    选择机房:让用户来告诉我们哪个机房最好。监控用户下载一个文件用多久。自己写监控代码。使用onload事件。这种方式能够了解到,你这个机房,我在上海访问的时候下载多长时间,在北京访问的时候是多长时间。

    监控一个用户下载文件所用的时间:在服务器记录一个页面初始化时的时间 然后再记录页面加载完毕时的时间 相减就行了。url地址中要有个随机数,这样避免用户第二次下载的时候cache住了。

    多域名问题(城市),总共才10个人,不可能各个城市都去搭建机房难以维护,就比较麻烦。于是就用了两个机房,北京和上海各一个。把配置拷贝,一模一样的配置。主从结构。
    北京服务器不能写,只能读。写代码的人就麻烦。统计数据问题。同步更新问题。
    北京用刀片服务器,所以硬件上好,避免工程师跑到北京去来回跑维护。刀片服务器2万块钱(用三年)。
    双机房问题,南北各一个机房。再给一次机会,会选择一个机房。

  • 相关阅读:
    121.买卖股票 求最大收益1 Best Time to Buy and Sell Stock
    409.求最长回文串的长度 LongestPalindrome
    202.快乐数 Happy Number
    459.(KMP)求字符串是否由模式重复构成 Repeated Substring Pattern
    326.是否为3的平方根 IsPowerOfThree
    231.是否为2的平方根 IsPowerOfTwo
    461.求两个数字转成二进制后的“汉明距离” Hamming Distance
    206.反转单链表 Reverse Linked List
    448. 数组中缺少的元素 Find All Numbers Disappeared in an Array
    常见表单元素处理
  • 原文地址:https://www.cnblogs.com/wangtao_20/p/3426673.html
Copyright © 2011-2022 走看看