nginx常用负载方式

来源:互联网 发布:两游记配音软件 编辑:程序博客网 时间:2024/06/05 15:44

1:轮训是Nginx负载均衡默认方式,采用这种方式每个客户端请求按时间的顺序逐一分配到不同的后端服务器,如果后端服务器无法联系,则自动从负载均衡群集删除。

2:轮训几率方式主要用于后端服务器性能不同的情况,weight参数表示权值,权值越高被分配到的几率越大。如果后端服务器无法联系,则自动从负载均衡群集删除。

3:IP_HASH方式根据每个客户端请求按照iphash结果分配,这样每个访客固定访问一个后端服务器,可以解决session共享问题。 Ip_hash

4:fair 方式根据后端服务器的相应时间来分配请求,响应时间短的优先分配。Fair方式不是nginx默认支持方式,需要按照gnosek-nginx-upstream-fair

5:URL_HASH 根据访问URLHASH结果来分配请求,使每一个URL定向到同一个后端服务器,后端服务器为缓存是推荐使用这种方式。url_hash方式不是nginx默认支持方式,依赖evanmiller_nginx_upstream_hash

6:sticky 基于cookie负载均衡。常见的有使用nginx自带的ip_hash来做,我想这绝对不是一个好的办法,如果前端是CDN,或者说一个局域网的客户同时访问服务器,导致出现服务器分配不均衡,以及不能保证每次访问都粘滞在同一台服务器。如果基于cookie会是一种什么情形,想想看,每台电脑都会有不同的cookie,在保持长连接的同时还保证了服务器的压力均衡nginx-sticky-module 会分配cookie 对应的route,支持md5,indexsha hash


mysql 的索引类型

Myisam

   -主键索引/非主键索引

     叶子节点上均带有行号,通过行号进行索引

Innodb

   -主键索引(聚簇索引)      叶子节点上带有数据

   -非主键索引(第二索引)    叶子节点上带有主键id

为什么innodb存储引擎的索引设计与myisam的实现有异?

myisam属于堆表,数据写入一直累积(concurrent_insert参数设置为2);此时写入性能比innodb好,但是无论是主键查询还是非主键查询,都不可避免的需要二次io(除非能索引内完成字段记录返回)


innodb属于聚簇索引组织表(主键索引即数据),由于必须保证索引有序,在写入时需要找到合适的位置进行插入,有时候还会导致二叉树调整所以写入性能比myisam要差;但是主键查找时只需要一次io即可返回数据,非主键索引查询时如果在索引内不能完成查询记录返回则需要第二次的io


0 0
原创粉丝点击