《App后台开发运维和架构实践》读书笔记

来源:互联网 发布:js点击按钮生成文本框 编辑:程序博客网 时间:2024/06/05 06:06

5.2 基本原理

网络请求处理,使用高效的epoll;

master进程只在一开始创建所有的worker进程,有请求就唤醒自己,将请求交给worker进程去做,然后继续沉睡;worker进程们实际干活儿;


5.3 配置

工作进程数;每个进程打开的文件描述符上限;

每个worker进程的连接上限;

sendfile:高效传输文件模式:从文件读到cache,不经过用户态buffer中转,直接写入buffer,发给TCP socket;

支持gzip压缩

负载均衡策略选择:

1. 时间轮询(默认),手动配置每个服务器的值班时间比例,请求按时间分配到不同的服务器上;

2. 按照请求来自的ip,哈希到不同的服务器上;优点:同一个客户端ip,每次固定发到同一个服务器上,该服务器可以cache住该ip的session数据;

3. 按照请求的URL来哈希到不同的服务器上;优点:可提高服务器的缓存命中率;

4. 公平:谁干活儿快就多分给谁一些请求;


5.4 性能统计

可以查到Nginx的状态信息:http://域名/nginx_status


5.5 实现负载均衡的方案

[Internet]---api请求--->[负载均衡服务器,有一个外网ip, 一个内网ip]---转发api请求--->[多台内网应用服务器,各自只有一个内网ip]

通过DNS服务,将外网ip和域名绑定上;

负载均衡服务器上部署Nginx

词方案好处:

- 保证了应用服务的高可用,一台宕机不影响服务的可用性;

- 应用服务器不直接连外网,减少了被入侵的可能性;

问题:负载均衡服务器只有一台,宕机了怎么办?

解决:Nginx+Keepalived, 部署两台Nginx负载均衡服务器,通过Keepalived将外网ip绑定到一台上,如宕机,Keepalived自动把这个外网ip漂移到另一台上;

建议使用云服务的负载均衡服务;


5.6 Nginx处理业务逻辑

以前Nginx只负责请求转发,不处理任何业务逻辑;

Nginx+Lua,可以处理一些简单的业务了,复杂业务逻辑仍然交给应用服务器;




阅读全文
0 0
原创粉丝点击