ZJfans Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

协程、Lua 队列、带宽打满

1、问题现象在生产现场,早上 6 点,网关出现与所有节点连接断连的异常,具体表现为: 网关所有进程与南北向、东西向的节点全部断开连接; 日志显示与所有的节点都心跳超时; 6 点异常必现 受影响的节点包括: 客户端 后端微服务 ZooKeeper Redis(哨兵) RabbitMQ 2、初步分析与验证思路 现场确认 与现场确认这两个时间段是否有特殊操作,答复:无。 日志分析 获取并分析
2025-08-27
#openresty #协程

热更新-动态路由

前言在传统微服务体系中,热更新是一个非常重要的功能,可以在网关运行,不重启的情况下,动态修改配置并生效。我们可以把路由分为三种模式 nginx/openresty支持的静态路由,本质是修改nginx.conf,重启nginx生效 服务自动发现 热更新 热更新最重要的是可以动态的更新 upstream,Tengine 提供的第三方模块 ngx_http_dyups_module 允许在
2025-06-08
#nginx #worker #zookeeper #dyups #manage

openresty-域名解析

1、NGINX 支持的域名解析方式 静态解析:启动/重载时仅调用系统解析库(getaddrinfo()),将域名映射为 IP 列表后缓存,后续不再更新。 变量驱动的动态解析:在 proxy_pass 等指令中使用 $variable,结合 resolver,使 NGINX 在每次请求阶段异步更新域名解析结果。 **异步 resolver + resolve**:开源版 NGINX ≥ 1
2025-05-26
#nginx #openresty #dns #hosts

在OpenResty中实现Redis Sentinel支持

在OpenResty中实现Redis Sentinel支持1、引言OpenResty 通过 lua-resty-redis 模块为 Nginx 提供了与 Redis 交互的能力,但该模块原生仅支持直连模式,不具备高可用场景下的故障转移能力。在复杂的生产环境中,单点 Redis 容易因节点故障导致服务中断,因此需要借助 Redis Sentinel 来实现监控、故障切换、通知和配置提供者等高可用特性
2025-05-17
#openresty #redis #sentinel

NGINX 如何根据客户端协议构造并返回响应

NGINX 如何根据客户端协议构造并返回响应Nginx 向客户端返回响应时,会根据客户端使用的协议类型,构造对应格式的响应数据。为了实现这一点,Nginx 在响应阶段设置了一系列 filter(过滤器)模块,每个 filter 对应特定协议或处理职责。 当响应准备就绪后,这些 filter 会按照链式结构依次执行。Nginx 会根据请求上下文中的 r(ngx_http_request_t)结构体中
2025-05-15
#nginx #HTTP1 #HTTP2

nginx之上下游不同协议的转换

Nginx 主要用于实现路由和反向代理功能。在实际应用中,客户端与后端服务可能使用不同的协议,例如客户端使用 HTTP/2,而后端仍采用 HTTP/1.1。作为应用层(L7)代理,Nginx 会分别与客户端和后端建立独立的连接,解析、处理请求和响应,并根据目标协议格式重新构造数据后转发。 需要注意的是:无论前后端协议是否一致,Nginx 始终执行这一套“应用层重构”流程。当协议
2025-05-10
#nginx #websocket #HTTP

Nginx 服务自动发现与配置热更新架构

Nginx 服务自动发现与配置热更新架构Nginx 采用 master-worker 多进程模型,其中: Master 进程:负责配置解析、进程管理和信号交互 Worker 进程:执行网络 I/O、定时器和延迟队列的事件循环 本文深入分析 Nginx 如何与 ZooKeeper 集成实现服务自动发现和配置热更新,以及如何通过引入 Manage 进程优化架构设计。 1、Nginx 多
2025-04-19
#nginx #worker #zookeeper #配置管理 #热更新

Chrome 133 引发 net::ERR_CONTENT_LENGTH_MISMATCH 问题的分析与解决

问题现象最近有用户反馈,在使用浏览器访问系统时,部分静态资源请求出现 net::ERR_CONTENT_LENGTH_MISMATCH 错误。具体表现如下: 页面请求多个静态资源(HTML/JS/CSS),但部分请求随机失败 每次刷新页面时,失败的资源不固定,但问题持续发生 问题排查介入排查后,发现以下关键信息: 使用 Chrome 131 及以下版本、Edge、Fire
2025-02-26
#nginx #chrome

linux对于io_uring的应用

1、内核支持 io_uring最近发现 Linux 新增了 2 个补丁,关于支持 io_uring。事实上 Linux 在 5.1 版本就引入了 io_uring,有点好奇这次的补丁是实现什么功能。 相关补丁链接: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=71f0dd5a3293
2025-02-12
#linux #io_uring #epoll

网络 IO 与 epoll 深入分析

网络 IO 与 epoll 深入分析本文深入分析 Linux 内核网络数据接收流程、socket 机制、惊群效应及其解决方案,以及 epoll 的实现原理和 Nginx 的 IO 复用实践。 1、内核如何接收网络数据不同主机通过网卡进行数据交互。网卡将电磁波转换为模拟信号,再转换为数字信号,最后由 OSI 模型逐层传递到应用层,变成应用程序可以处理的数据。本节从接收到数字信号开始分析数据的流转过
2024-11-29
#nginx #epoll #socket #网络编程
123

搜索

Hexo Fluid
总访问量 次 总访客数 人