Pastwinder  

所谓框架,就是一个适合自己项目的(可用性),具有可靠性,可扩展性和高性能的组织框架。

 可靠性:

资源是否可靠?

:宽带稳定,带宽大,服务器电脑配置好。

DNS是否可靠?

:对应多个域名。

例子:www.abc.com----a.abc.com----IP

                           |----b.abc.com----|

                           |----c.abc.com----|

DNS分配地点?

:通过关键服务器判断访问IP所属地区、所属运营商,然后对应各省本地服务器、不同服务商服务器。

多服务器?

:使用负载均衡,路由。当DNS切换时候生效慢,可以使用漂IP定位到其它网卡(多个nginx)

性能?

:缓存,全套使用,各级使用。

DB层?

:可靠备份,性能方面,分秒,分部。

:CAP原理:保持consistent(一致性)、partition(可拆分)、available(高性能),但是三者一般不能全有,需要根据情况取舍(如果数据可拆分,则必然有先后)。

传输:

TCP重传,排重?

:心跳方式,还可以在上层加入自己的协议。(server死了,TCP返回可知。断网,TCP返回不一定可知)。

socket代码?

:socket:write(”  “)快

:socket:write(”  “),socket:write(”  “)慢

:如果想更改可以打开TCP:NoDelay

传输一致性?

:RPC(两步提交)传输成功有反馈

:数据流与命令流分开处理

:三部传输,使命令有状态,传输成功,收到再反馈

 流水线模式?

:速度很快,一个连一个的传,第一个和最后一个仅差一次传输时间。(传输的快么,了解瓶颈在哪)

Gossip传输?

:病毒传播方式传输

路由:

负载均衡?

:算法RoundRobin、Hash(最好选素数)、Weight、Session-stick。

HTTP反向代理?

:获取源IP

健康检查?

:Redispatch=Retry,例子:A失败-》B、C全失败-》则判断为失败。

缓存:

全面监控?

:系统层check、服务check、业务应用check。

缓存可靠性?

:主动过期(一段时间主动删除缓存)、被动过期。

缓存可扩展?

:使用一致性哈希(哈希环)可以搬运更少的key。

CRU?

:12345 读出4, 23546 放回4到最后再写入6。

缓存衡量标准置换率?命中率?

缓存穿透?

:缓存要有过期时间。

多级缓存?

:增加并发效率。

队列:(Redis、Kafka)

目的?

:异步化。

分类?

:顺序队列,对顺序有要求

:并发队列,对顺序没有要求

高性能、高并发:队列+缓存(cache)?

队列可靠性?

:备份

:HA,集群。

队列扩展性?

:HASH、顺序队列要单独拿出来

KaFka?

:写入文件快,可以追加写,指针读取

秒杀?

:产品业务可以降级

:使用队列,秒杀进入队列

:全异步实现:不管有没有结果返回,可以继续操作。

:半异步:有处理中提示,过后返回结果才可继续操作。

压力测试?

:必须始终有程序在模拟用户操作,一旦出现错误立即回滚上一步操作!

堆积判断?

:判断request时间,如果时间过长,则犹堆积

 

posted on 2016-07-08 19:02  Pastwinder  阅读(60)  评论(0)    收藏  举报