一、背景
- 经常出现导入大数量时一个单节点CPU升高,导致整个系统查询慢;
- 进行大数据量填报时,填报涉及二次计算的时CPU也会升高,这个时候再做其他的操作就会出现卡的现象。对此,使用nginx读写分离的方式,将填报提交走一个节点,预览查询走另外一个节点来避免出现一台节点压力过大的情况,根据实际情况可以调整节点的权重。
二、实现思路
将报表填报和预览分别在不同节点上面实现,实现读写分离的效果;nginx里面使用$request_method = "POST"判断是否是post请求,如果是post请求设置请求的节点,如果不是post走另外一个节点;
upstream 里面配置正常请求的节点,与post请求节点分开使用。- <span data-offset-key="8t0fo-0-0"><span data-text="true"> if ($request_method = "POST"){
- proxy_pass http:</span></span><span data-offset-key="8t0fo-0-1" style="font-style: italic;"><span data-text="true">//122.9.83.61:8080;</span></span><span data-offset-key="8t0fo-0-2"><span data-text="true">
- }</span></span>
复制代码
三、操作步骤
3.1 搭建好集群之后单独对nginx进行如下配置:nginx具体配置如下:
四、效果查看
- 如下所示是预览的时候走的get请求,走的是8081节点;
在nginx里面加入如下配置,能够在前端看到请求的地址;- add_header backendIP $upstream_addr;
- add_header backendCode $upstream_status;
复制代码
2.如下是post请求走的是8080节点
编辑于 2021-6-15 20:32
编辑于 2021-6-17 09:11
|