websocket消息处理失败排查(redis大key)

排查问题:
websocket 断连问题
客户端连接成功后,会发起消息watchroom, 表示需要加入某个房间进行协同
技术栈:
nodejs + pm2 + socket.io + socket.redis.adapter.io + grpc

watchroom -> websocket -> grpc -> emit

调用grpc 超时失败, 起初是认为grpc 的问题, 于是开了个python脚本 访问grpc,没有问题, 表示grpc 服务端正常。
在一起大规模断连的场景下,关注到日志
timeout reached while waiting for fetchSockets response

于是排查websocket + redis问题, 测试发现 redis本身的连接没有问题,只是某次差点寻会有问题。想到大key的问题,在测试环境复现,复制粘贴大量数据走 websocket 确实会出现断连的情况。
还需要进一步印证这个想法。
简单redis 监控。
我们本身是有prometheus 和 grafana 的,

# 创建docker compose 文件, 输出监控指标
docker-compose-redis-export.yaml

version: "3.2"
services:
  redis-exporter:
    image: oliver006/redis_exporter:v1.51.0
    container_name: redis-exporter
    restart: unless-stopped
    command:
      - "-redis.password-file=/redis_passwd.json"
    volumes:
      - /usr/share/zoneinfo/PRC:/etc/localtime
      - ./redis_passwd.json:/redis_passwd.json
    expose:
      - 9121
    ports:
      - "9121:9121"
# redis 连接信息
touch redis_passwd.json
{
    "redis://127.0.0.1:6379":"pwd"  #如果没有密码 冒号后设置空字符串
}

访问 http://127.0.0.1:9121/ ,显示正常这一步则没有问题。

prometheus yml配置

- job_name: 'redis_exporter_targets'
    static_configs:
      - targets:
        - redis://127.0.0.1:6379
    metrics_path: /scrape
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9121


  ## config for scraping the exporter itself
  - job_name: 'redis_exporter'
    static_configs:
      - targets:
        - 10.57.1.17:9121

grafna 配置 导入 17507

相关推荐

  1. websocket消息处理失败排查rediskey

    2024-04-22 13:42:05       36 阅读
  2. Redis /热Key故障处理流程

    2024-04-22 13:42:05       61 阅读
  3. Redis key和热key问题及处理

    2024-04-22 13:42:05       41 阅读
  4. Rediskey问题

    2024-04-22 13:42:05       30 阅读
  5. rediskey优化

    2024-04-22 13:42:05       23 阅读
  6. Redis击穿(热点key失效

    2024-04-22 13:42:05       65 阅读
  7. 消费者处理消息失败如何解决

    2024-04-22 13:42:05       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 13:42:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 13:42:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 13:42:05       82 阅读
  4. Python语言-面向对象

    2024-04-22 13:42:05       91 阅读

热门阅读

  1. Golang:字符串正则匹配的简单使用

    2024-04-22 13:42:05       32 阅读
  2. PostCSS概述

    2024-04-22 13:42:05       35 阅读
  3. 帮我一下,c++

    2024-04-22 13:42:05       32 阅读
  4. C#:直接调用 OpenFileDialog

    2024-04-22 13:42:05       38 阅读
  5. 第二章:c语言中的表达式和运算符

    2024-04-22 13:42:05       30 阅读
  6. Vue解构工作原理

    2024-04-22 13:42:05       29 阅读
  7. python项目环境安装实测

    2024-04-22 13:42:05       36 阅读
  8. 3、完成量

    2024-04-22 13:42:05       35 阅读
  9. 【JVM】JVM调优可配置参数及配置时机和原则

    2024-04-22 13:42:05       41 阅读
  10. JVM基础

    JVM基础

    2024-04-22 13:42:05      29 阅读