前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次验证码裂开问题

记一次验证码裂开问题

作者头像
itze
发布2022-10-31 16:05:18
3590
发布2022-10-31 16:05:18
举报
文章被收录于专栏:IT者

环境

  • 操作系统:CentOS 7
  • 数据库:Msql 8.0
  • Docker版本:20.10

问题

生产环境、预发环境、所有验证码都裂开

分析及解决

发现请求验证码的接口状态一直在pending,想到验证码是要往数据库中写入存储,使用navicat连接数据库发现,正常连接,XShell连接服务器,由于数据库使用docker运行 查看在运行容器及大小

代码语言:javascript
复制
docker ps -s

在正常运行,心想重启一下dokcer中数据库容器,于是重启容器

代码语言:javascript
复制
docker restart 容器名称

重启之后发现navicat都连接不上了,本来还能连接,使用telnet命令ping一下服务器数据库端口,发现ping通,回到服务器,尝试重启docker

代码语言:javascript
复制
systemctl restart docker

docker重启之后,由于创建容器时设置了docker重启会自动启动,查看发现数据库容器正常启动,再次ping端口,发现仍然ping不通,有点着急了,自己观察发现在运行容器的PORTS列为空!也就是说docker启动容器之后并没有映射端口,于是去网上搜索,查看docker 容器的网络配置

代码语言:javascript
复制
docker inspect  容器名或容器id|grep IPAddress

输出结果中:IPAddress 为空!果然docker网络配置出现了问题

查看docker的虚拟网络

代码语言:javascript
复制
docker network ls

输出结果正常

重置docker网络

停止docker服务

代码语言:javascript
复制
systemctl stop docker

关闭docker相关网卡设备

代码语言:javascript
复制
ip link set docker0 down

删除 docker0桥接设备

代码语言:javascript
复制
brctl delbr docker0

如果提示:brctl command not fount 安装brctl

代码语言:javascript
复制
yum install bridge-utils -y

最后再次启动docker服务,然后启动你的容器

代码语言:javascript
复制
systemctl start docker

访问发现,数据库正常连接,验证码正常出来,但是!没过两分钟,前端就告知验证码又没了,想了想不应啊,查看服务器磁盘内存发现磁盘内存使用率100%!应该是磁盘内存不够写不进去吧, 查看服务器磁盘内存

代码语言:javascript
复制
df -h

查看当前路径下大文件

代码语言:javascript
复制
du -sh *

查看指定路径下文件大小

代码语言:javascript
复制
du -h /root

找到几个无用的大文件,删除之后发现验证码恢复正常,后续改进可以把验证码缓存到Redis中。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 问题
  • 分析及解决
  • 重置docker网络
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档