filebeat重复采集数据问题排查 发表于 2021-07-18 | 分类于 ELK , DevOps一.背景公司基于ELK的日志系统一直很稳定,不过有一天下午,微信收到Kafka topic延迟堆积告警将近6000w条数据。首先接收到告警,查看了这个业务最近7天的一个流量图,基本上量都很小,每秒也就2k左右的数据流量,但是今天下午流量直接跑到了30k/s并且持续了一段时间.首先找到业务方负责的SRE同事,确认流量是否属于正常(不排除上线新款游戏流量暴增的情况).SRE同事确认流量异常,最近无新游 ...阅读全文 »
PHP中MySQL server has gone away问题 发表于 2020-08-22 | 分类于 DevOps一.背景 之前在Codeigniter里面写过类似console命令行的脚本. 脚本里存在sleep语句时间比较久, 导致出现一个现象就是sleep之前的SQL都是操作成功的,但是sleep之后,再执行SQL操作竟然报错: MySQL server has gone away. 也就是mysql的这个连接失效. 后来分析才知道, MySQL中存在2个重要的配置参数:inter ...阅读全文 »
FastCGI协议内容 发表于 2020-04-27 | 分类于 HTTPCGI或者Fast-CGI协议的定义: WebServer(web服务器软件如nginx httpd等)与真实后台处理请求的程序之间通信的一种约定规范,找了一篇文章把fastcgi协议讲得比较清楚,记录一下。总结: 和理解http协议一样去理解fastcgi协议其实很都是b/s架构, 一个客户端发一个request请求,一个server端响应数据。 此时WebServer作为client fast ...阅读全文 »
采用xhprof扩展对PHP项目进行性能分析 发表于 2020-04-09 | 分类于 PHP背景 由于我们的项目是另外一个团队的server端,给他们提供的2个接口他们偶尔反应程序调用超时,他们设置httpClient的超时时间为10s。一般情况下来说我们程序一定要保证在5s以内就要返回response给客户端了,所以我们想分析一下我们的程序到底是哪个模块或者函数调用上耗时严重. 一般我们最容易想到的方法就是在某个方法前拿到开始时间戳,然后在方法执行完以后得出结束时 ...阅读全文 »
git中rebase(变基)和merge(合并)区别 发表于 2020-03-23 | 分类于 git简介 以前用git基本上针对git flow以及基本的git操作命令基本上满足日常开发需求,其实也没必要过于深究,常用命令80-90%基本上满足我们正常使用了。 但是其实很多人,包括我自己,git的官方文档基本没扫完一遍,所以抽时间其实几个小时也就能看完的事情。 其中在合并branch的时候,网上有很多关于使用git rebase 还是 git merge有无数篇文章进行所谓 ...阅读全文 »
Protobuf数据交换格式 发表于 2020-01-08 | 分类于 gPRC简介 ProtoBuf(Google Protocol Buffer)是由google公司用于数据交换的序列结构化数据格式,具有跨平台、跨语言、可扩展特性,类型于常用的XML及JSON,但具有更小的传输体积、更高的编码、解码能力,特别适合于数据存储、网络数据传输等对存储体积、实时性要求高的领域。以 .proto为后缀,有自己的编译器 protoc, protoc2 和 pro ...阅读全文 »
gRPC简介和实践 发表于 2020-01-05 | 分类于 HTTP简介 gRPC是Google主导的一个高性能,跨语言的RPC(远程过程调用)框架。官网: https://grpc.io/ 支持多种常见的流行编程语言,如C++ Java Node.js PHP Python等等。 其实从本质上来看到gRPC其实是基于使用protobuf做为数据传输格式,借助HTTP2协议通信做的一个RPC框架,只要任何语言实现了gRP ...阅读全文 »
Jenkins学习笔记 发表于 2019-12-09 | 分类于 DevOps背景 DevOps其实是描述的是从开发人员push代码或者上线打tag发布新版本的时候,会经过一些列单元测试,集成测试,自动部署等等一系列步骤转化为自动化的一个过程。只要这些自动化脚本都做好了, 那么就节约了很多的物力和财力。 程序员只要关心自己的业务代码即可, 后面一些列繁琐的事情,打包,更新镜像等等都不用关心, 也无须关心,因为流程都是一样的,步骤也是一样的,就让脚本帮我们做就好了。 那么 ...阅读全文 »
https跳过证书校验底层原理 发表于 2019-11-26 | 分类于 HTTPS背景大家可能遇到过爬虫或者curl某个https站点,由于站点TLS证书过期或者使用自签证书,curl或者浏览器校验不通过,导致不能正常访问。 所以类似什么Java中怎么跳过https证书校验,php怎么跳过,python怎么跳过等等问题全网遍地都是。 但是你知道跳过https证书底层到底干了什么事情呢? https不懂的同学可以先简单看我的一篇文章: https加密和解密过程。网上太多人只讲通过 ...阅读全文 »
K8S中Pod内部容器通信原理 发表于 2019-11-21 | 分类于 K8S原文地址: https://blog.csdn.net/xyz_dream/article/details/103179128要了解和分析Pod中的container容器网络,那么首先肯定是要了解docker容器网络的几种模式以及常见用法。之后我们再带着这个问题一步一步地去进行实操验证一下我们的推断是否正确。1.docker容器网络模式1.1 默认bridge桥接网络默认分配docker0网桥网段 ...阅读全文 »