Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >重识Nginx - 16 Nginx reload流程浅析

重识Nginx - 16 Nginx reload流程浅析

作者头像
小小工匠
发布于 2022-10-06 00:03:17
发布于 2022-10-06 00:03:17
7220
举报
文章被收录于专栏:小工匠聊架构小工匠聊架构

文章目录


图解reload流程


1.向master程发送HUP号( reload命令)

在高并发的场景下 , reload会造成一段时间内worker进程数量大于CPU物理核数的情况,发生CPU争抢,CPU缓存效率下降,因此在QPS或者并发连接数不变的情况下,nginx总体性能会略有下降


2.master进程校验配置语法是否正确

nginx -t检查配置文件正确与否的操作,如果语法错误,reload会中断,原worker进程仍然按照原配置项提供服务


3.master进程打开新的监听端口

在新的配置文件里,如果我们监听了新的端口,master会打开这个监听端口,以便新起的worker进程进行监听和任务处理。

子进程可以共享使用父进程已经打开的端口。 新老worker进程因为是都是同一个master进程的子进程,所以可以的。

配置文件中即使不再监听某个端口,已经建立的连接仍然可以继续处理。


4.master进程用新配置启动新的worker 进程


5.master进程向老worker 进程发送QUIT号


6.老worker进程关闭监听句柄,处理完当前连接后结束进程

关闭监听句柄 ,就是socket,也可以叫套接字,或者叫fd文件句柄

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/10/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【原创】Java并发编程系列31 | 阻塞队列(上)
阻塞队列在并发编程非常常用,被广泛使用在“生产者-消费者”问题中。接下来两篇文章就来详细介绍阻塞队列。本文是阻塞队列上篇。
java进阶架构师
2020/08/17
4680
【原创】Java并发编程系列31 | 阻塞队列(上)
并发编程4:Java 阻塞队列源码分析(上)
上篇文章 并发编程3:线程池的使用与执行流程 中我们了解到,线程池中需要使用阻塞队列来保存待执行的任务。这篇文章我们来详细了解下 Java 中的阻塞队列究竟是什么。 什么是阻塞队列 阻塞队列其实就是生
张拭心 shixinzhang
2018/01/05
1.5K0
并发编程4:Java 阻塞队列源码分析(上)
(juc系列)阻塞队列(blockingqueue)及其实现
阻塞队列的方法,有四种形式来处理,操作没有办法被立刻满足,但是未来某些时间点可能满足的情况:
呼延十
2021/11/10
4970
BlockingQueue 源码分析
BlockingQueue 首先是一个队列,其次提供了阻塞功能。它看起来很像消息队列可让消息解耦,但其在生产者-消费者模型中通过阻塞又可使二者速度达到平衡。使用阻塞队列无需过多考虑线程安全问题,专注业务逻辑的实现即可
晚上没宵夜
2022/05/09
2740
BlockingQueue 源码分析
并发阻塞队列BlockingQueue解读
首先,最基本的来说, BlockingQueue 是一个先进先出的队列(Queue),为什么说是阻塞(Blocking)的呢?是因为 BlockingQueue 支持当获取队列元素但是队列为空时,会阻塞等待队列中有元素再返回;也支持添加元素时,如果队列已满,那么等到队列可以放入新元素时再放入。
大忽悠爱学习
2022/10/24
1.2K0
并发阻塞队列BlockingQueue解读
Java 7 种阻塞队列详解
队列(Queue)是一种经常使用的集合。Queue 实际上是实现了一个先进先出(FIFO:First In First Out)的有序表。和 List、Set 一样都继承自 Collection。它和 List 的区别在于,List可以在任意位置添加和删除元素,而Queue 只有两个操作:
海星
2020/09/27
9.8K0
Java并发编程--BlockingQueue
  BlockingQueue支持两个附加操作的Queue:1)当Queue为空时,获取元素线程被阻塞直到Queue变为非空;2)当Queue满时,添加元素线程被阻塞直到Queue不满。BlockingQueue不允许元素为null,如果入队一个null元素,会抛NullPointerException。常用于生产者消费者模式。
在周末
2019/09/11
5850
阻塞队列和ArrayBlockingQueue源码解析(JDK1.8)
什么是阻塞队列 当队列中为空时,从队列中获取元素的操作将被阻塞,当队列满时,向队列中添加元素的操作将被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其它的线程往队列中插入新的元素。同样,试图往满的队列中添加新元素的线程也会被阻塞,直到有其他的线程使队列重新变的空闲起来。 处理方式 抛出异常 返回特殊值 一直阻塞 超时退出 插入方法 add(e) offer(e) put() offer(e, time, unit) 移除方法 remove() poll(e) take() poll(time, u
java404
2018/05/18
8900
10分钟从实现和使用场景聊聊并发包下的阻塞队列
上篇文章12分钟从Executor自顶向下彻底搞懂线程池中我们聊到线程池,而线程池中包含阻塞队列
菜菜的后端私房菜
2024/07/03
3940
Java面试——阻塞队列
【1】阻塞队列的架构图:阻塞队列与 List 具有很多类似之处,对比着学习会更加容易一些。
Java架构师必看
2021/05/14
9930
Java面试——阻塞队列
阻塞队列实现之ArrayBlockingQueue源码解析
ArrayBlockingQueue是由数组构成的有界阻塞队列,支持FIFO的次序对元素进行排序。
烂猪皮
2023/09/04
1840
阻塞队列实现之ArrayBlockingQueue源码解析
阻塞队列与非阻塞队列
Java提供很多线程安全的容器,为开发人员在并发编程场景下使用,通常我们会更加关注业务实现,而不关心底层结构。但我们应该理解这些容器的原理和使用场景,以方便我们的开发和遇到问题的分析,并且有时候也能借鉴一下大神们的实现思想。
搬砖俱乐部
2019/06/15
3.4K0
基于链表的有界阻塞队列 —— LinkedBlockingQueue
" 上一节看了基于数据的有界阻塞队列 ArrayBlockingQueue 的源码,通过阅读源码了解到在 ArrayBlockingQueue 中入队列和出队列操作都是用了 ReentrantLock 来保证线程安全。下面咱们看另一种有界阻塞队列:LinkedBlockingQueue。 "
程序员小航
2020/11/23
6390
基于链表的有界阻塞队列 —— LinkedBlockingQueue
多线程之阻塞队列
DelayQueue每次都是将元素加入排序队列,以delay/过期时间为排序因素,将快过期的元素放在队首,取数据的时候每次都是先取快过期的元素。 构造方法
OPice
2019/10/23
9950
并发队列-有界阻塞队列ArrayBlockingQueue原理探究
上节介绍了无界链表方式的阻塞队列LinkedBlockingQueue,本节来研究下有界使用数组方式实现的阻塞队列ArrayBlockingQueue
加多
2018/09/06
4560
并发队列-有界阻塞队列ArrayBlockingQueue原理探究
基于数组的有界阻塞队列 —— ArrayBlockingQueue
" 在阅读完和 AQS 相关的锁以及同步辅助器之后,来一起阅读 JUC 下的和队列相关的源码。先从第一个开始:ArrayBlockingQueue。 "
程序员小航
2020/11/23
9540
基于数组的有界阻塞队列 —— ArrayBlockingQueue
JDK源码分析-LinkedBlockingQueue
前文「JDK源码分析-ArrayBlockingQueue」分析了 ArrayBlockingQueue 的代码实现,LinkedBlockingQueue 也是阻塞队列的实现。与前者不同的是,后者内部是由链表实现的。
WriteOnRead
2019/08/16
4180
回归Java基础:LinkedBlockingQueue阻塞队列解析
整理了阻塞队列LinkedBlockingQueue的学习笔记,希望对大家有帮助。有哪里不正确,欢迎指出,感谢。
捡田螺的小男孩
2020/04/15
4780
回归Java基础:LinkedBlockingQueue阻塞队列解析
多线程应用 - 阻塞队列LinkedBlockingQueue详解
与前面分析过的ArrayBlockingQueue和LinkedBlockingDeque一样,继承自AbstractQueue抽象类,并实现了BlockingQueue接口。
虞大大
2020/08/26
1.4K0
多线程应用 - 阻塞队列LinkedBlockingQueue详解
11.并发包阻塞队列之LinkedBlockingQueue
jdk1.7.0_79   在上文《10.并发包阻塞队列之ArrayBlockingQueue》中简要解析了ArrayBlockingQueue部分源码,在本文中同样要介绍的是Java并发包中的阻塞队列LinkedBlockingQueue。ArrayBlockingQueue队列是由数组实现,而LinkedBlockingQueue队列的实现则是链表(单向链表)实现,所以在LinkedBlockingQueue有一个Node内部类来表示链表的节点。 static final class Node<E
用户1148394
2018/01/12
8490
推荐阅读
相关推荐
【原创】Java并发编程系列31 | 阻塞队列(上)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档