【面试】访问量由百万级突破到千万级的应对方法

第一次技术群面,十个人和两个面试官,题目是访问量由百万级突破到千万级会遇到的问题以及处理方法。然后单独面试。那时候还没用过Hbase也不晓得各位大佬再聊些什么,有幸过了,再复试。

目录

1、前端

1.1 把静态页面和图片等静态资源放到CDN中

1.1.1 CDN 的定义

1.1.2 没有CDN的访问过程

1.1.3 引用CDN

 1.1.4 CDN的其他作用

2 负载均衡

2.1 负载均衡算法:

3 数据库

3.1 水平或者是垂直分表。


1、前端

问题访问的效率会变得缓慢,主要是想怎么提高访问的效率。

1.1 把静态页面和图片等静态资源放到CDN中

1.1.1 CDN 的定义

CDN(Content Delivery Network)内容分发网络。

我的理解:在各个区域网络边缘(和终端相连)用更多的缓存服务器去缓存一些静态的资源,它的中心平台负责内容的分发,任务调度和负载均衡。

1.1.2 没有CDN的访问过程

1.1.3 引用CDN

 1.1.4 CDN的其他作用

防御DDos攻击。

DDos我的理解:利用网络节点资源发送大量请求到目标服务器,导致服务器拒绝服务真正的用户。

CDN主要是做到了分流,隔离的效果。

2 负载均衡

我的话来说就是:负载均衡器(想象成领导者)调负载小的服务器(闲的那一个组员)给他分配任务。

2.1 负载均衡算法:

1、接到任务后按顺序分发给可以接受任务的服务器,这就是轮询。适用于每一个链接请求的时间都差不多;不适用于的情况:我有5个服务器,第一次分别有请求的编号为1-5,3号请求的请求的时间最长,然后是第二次请求的编号分别为6-10,第8个请求连接的时间也是很长,这不坑惨的第三个服务器?

2、找到负载最少的,优先选择连接数最少,假如存请求连接时间较长就优先选择这个办法。

3、根据请求源的 IP 的散列(hash)来选择要转发的服务器。这可以使同类型的用户都被同一个服务器服务。

3 数据库

首先是每次插入或者删除记录,数据库都要相应地更新索引,索引假如太多例如一本字典的索引比实际有用的内容要多那样查起来是十分费劲的。还有就是在很多时候查询出来一条数据可能很也有冗余无用的结果

3.1 水平或者是垂直分表。

  • 垂直分表我的理解是:例如csdn经常要用到用户名和密码,但是用户的个人信息:性别、毕业学院、骚话介绍等等基本上很少用,就可以把用户名和密码放一个表,另外的个人信息放一个表。这样就可解决表与表之间的I/O抢夺资源的情况。
  • 水平分表:主要是解决数据越来越多的情况。表的行数超过200万行时,查询效率就会变慢,这时可以把一张的表的数据拆成多张表来存放。例如我要拆成n张表,就可以id%n。

以上是我的拙见,有什么意见Thanks♪(・ω・)ノ

发布了46 篇原创文章 · 获赞 75 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_38875300/article/details/102513776
今日推荐