- 博客(44)
- 资源 (7)
- 收藏
- 关注
原创 一次生产docker MTU=1500问题排查解决
MTU(Maximum Transmission Unit,最大传输单元),是网络链路节点的管控值。大于该值的数据帧,或分片,或丢弃。推测也就是lvs 到后端服务这块出了问题 小报文没事,大报文丢失, 说明网络配置上有问题, 百度查询解释最多就是MTU设置有问题。按照教程修改 我的服务是通过docker compse 部署 找到网络设置进行添加。在观察 宿主机和docker 的 mtu docker都为1400。在容器上和lvs上tcpdump抓包发现了问题。排查宿主机和docker的MTU设置。
2024-04-01 17:42:36
1758
1
原创 基于centos7.9安装 imagemagick7.1.0
imagemagick已发布7.1.0-4版本, 官方提供的 rpm 安装包基于 centos8.x 构建, 奈何我们生产环境是 centos7.9版本, 只能源码安装了 安装过程依赖较多, 折腾了四天才搞定 docker 镜像, 这里记录下安装编译过程我这里需要 gif, png, jpeg, webp, avif, heic 等格式 所以依赖多, 不需要可以酌情减少#设置环境变量PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig:/usr/l
2021-08-19 15:36:54
1711
转载 go get报错:fatal: could not read Username ... terminal prompts disabled
问题terminal prompts disabledgo get xxx.com/xxx/xxx# cd .; git clone https://xxx.com/xxx/xxx.gitCloning into 'xxx'...fatal: could not read Username for 'https://xxx.com: terminal prompts disabledpackage xxx: exit status 128解决方案方案一临时解法:手动输入用户名密码env
2021-03-11 13:09:11
1453
原创 memecache部署自启动
线上部分机器上的memcached需要设置开机自启动查看启动项命令如下:systemctl list-unit-files |grep enable 查看所有启动项设置开启自启动添加到systemctl自启动服务,ln -s到systemctl目录下systemctl enable memcached.service修改/etc/sysconfig/memcached中的参数启动cat /etc/sysconfig/memcached PORT="11211" --- 端口U
2021-02-01 09:54:24
344
原创 nc实现多服务间上传下载文件
近段有本地和服务之间传递文件, 但公司服务器ssh跳板机登录, szrz, scp 都不可用, 看了网上教程可以用nc命令实现传递 甚至传递文件夹1、安装 ncyum install nc -y2、监听文件// 在 10.60.102.35 这台主机监听 12345 端口(注意符号是 “<” )nc -l 12345 < input.csv// 在 10.60.102.33 这台主机下载文件(注意符号是 “>” )nc --recv-only 10.60.102.
2020-11-14 14:31:55
811
原创 关于Git协同工作流流的思考
业界主流的协同工作流: Git Flow, GitHub Flow, GitLab Flow工作流介绍: http://www.ruanyifeng.com/blog/2015/12/git-workflow.html工作流的本质要解决:不同的团队能够尽可能地并行开发。不同软件版本和代码的一致性。不同环境和代码的一致性。代码总是会在稳定和不稳定间交替。我们希望生产线上的代码总是能对应到稳定的代码上来。基本上述的四个事儿,上述的工作流大都是在以建立不同的分支,来做到开发并行、代码和环境版本
2020-09-07 15:07:25
143
转载 Git三大特色之WorkFlow(工作流)
开篇Git 三大特色,分支,暂存区,工作流,今天终于要写到 WorkFlow 了,我彷佛已经看到胜利的曙光,走起。何谓工作流WorkFlow 的字面意思,工作流,即工作流程。在分支篇里,有说过这样的话:因为有分支的存在,才构成了多工作流的特色。事实的确如此,因为项目开发中,多人协作,分支很多,虽然各自在分支上互不干扰,但是我们总归需要把分支合并到一起,而且真实项目中涉及到很多问题,例如版本迭代,版本发布,bug 修复等,为了更好的管理代码,需要制定一个工作流程,这就是我们说的工作流,也有人叫它分支管理
2020-09-07 11:40:58
632
原创 docker中nginx *26054 open() “/var/lib/nginx/tmp/client_body/0000000005“failed (13: Permission denied)
部署在docker容器中的nginx以nobody形式启动,在上传大文件时候出现了此错误:2020/08/10 17:29:32 [crit] 54#0: *2812 open() "/var/lib/nginx/tmp/client_body/0000000222" failed (13: Permission denied), client: 10.126.173.6, server: xxxxxxxx, request: "POST /image/image.php?action=insert&am
2020-08-10 20:10:43
1577
原创 POST请求Expect:100-continue出现两次请求问题
今天在测试上测试上传图片POST请求 出现了响应两次发现第一次请求的header头中有:Expect: 100-continuecontent-Length:41386服务端响应了:HTTP/1.1 100 Continue后客户端进行下上传随后服务端响应回来数据查资料发现:在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,1. 发送一个请求, 包含一个Expect:100-continue, 询问Se
2020-08-06 20:09:02
12402
1
原创 linux 下 crontab中 find -exec 报 find: missing argument to `-exec‘
目前在docker容器中执行的 crontab命令删除定期删除/tmp 目录命令如下:# 进行临时目录磁盘清理1 0 * * * source ~/.bash_profile; find /tmp/ -mtime +5 -type f -exec rm -rf {} \ >/dev/null 2>&1观察发现没有执行,运行发现报此错误find: missing argument to `-exec'查资料发现 \后面需要 ;正确写法如下:1 0 * * * so
2020-08-05 19:41:38
665
原创 Linux下sysctl.conf内核参数详解
最近发现很多内核优化参数都记不住了,写下文章来备记,方便以后查看.编辑 /etc/sysctl.conf 文件,在里面加入如下内容:(有注释)#最大的待发送TCP数据缓冲区空间net.inet.tcp.sendspace=65536#最大的接受TCP缓冲区空间net.inet.tcp.recvspace=65536#最大的接受UDP缓冲区大小net.inet.udp.sendspace=65535#最大的发送UDP数据缓冲区大小net.inet.udp.maxdgram=65535#本地
2020-07-12 10:40:05
1268
原创 go middleware的原理写法
package mainimport ( "fmt")type Handler func(int)type Middleware func(Handler) Handlerfunc Chain(outer Middleware, other ...Middleware) Middleware{ return func(next Handler) Handler { for i := len(other) - 1; i >= 0; i-- { next =
2020-07-09 20:21:50
406
原创 Kafka 发送端error:This server is not the leader for that topic-partition
观察线上的错误日志发现出现: This server is not the leader for that topic-partition从日志推测是在broker topic partition出现了选主, 选主过程中推送了旧leader 出现此错误解决方案:该异常是由kafka集群broker节点发送变化导致,在producer端配置失败重试次数(retries=3,默认retries=0),线上用的spring kafka 参考配置配置即可附:#################consum
2020-07-06 12:00:50
10949
原创 go context包深入理解文章推荐
深度解密Go语言之context:知乎-Stefnogo blog: https://blog.golang.org/context
2020-07-03 16:08:33
222
原创 郑晔老的10x程序员工作法学习笔记
10x程序员工作法by:郑晔老师问题忙碌原因本质复杂度(Essential Complexity)问题本身复杂偶然复杂度(Accident Complexity)选用方法不当, 导致复杂度上升事实大部分程序员忙碌解决的问题,都不是程序问题,而是由偶然复杂度导致的问题解决减少偶然复杂度引发的问题, 让软件开发工作有序、高效地进行; 优秀程序员的开发效率是普通程序员的 10 倍如何思考思考框架要诀1、现状where are we?2、
2020-06-22 13:28:09
3229
4
转载 常见容错机制:failover、failfast、failback、failsafe
1.failover:失效转移Fail-Over的含义为“失效转移”,是一种备份操作模式,当主要组件异常时,其功能转移到备份组件。其要点在于有主有备,且主故障时备可启用,并设置为主。如Mysql的双Master模式,当正在使用的Master出现故障时,可以拿备Master做主使用2.failfast:快速失败从字面含义看就是“快速失败”,尽可能的发现系统中的错误,使系统能够按照事先设定好的错误的流程执行,对应的方式是“fault-tolerant(错误容忍)”。以JAVA集合(Collection)的
2020-06-18 09:54:09
876
转载 java HashMap 与HashTable的区别
HashMap 与HashTable的区别HashMap与Hashtable的区别是面试中经常遇到的一个问题。这个问题看似简单,但如果深究进去,也能了解到不少知识。本文对两者从来源,特性,算法等多个方面进行对比总结。力争多角度,全方位的展示二者的不同,做到此问题的终结版。1 作者Hashtable的作者:HashMap的作者:Hash Map的作者比Hashtable的作者多了著名顶顶的并发大神Doug Lea。他写了util.concurrent包。著有并发编程圣经Concurrent Pr
2020-06-10 17:00:40
374
转载 服务器常见错误500 501 502 503 504 505 详解
最近公司好多人,总来询问网站报错误代码具体是什么意思,为了大家好理解,所以贴出来吧,列出来几个比较常见的错误代码供大家学习一下1、服务器500错误服务器500错误是服务器的内部错误,可能原因1、程序语言错误,例如:ASP或者PHP语法错误;2、高并发导致,系统资源限制不能打开过多的文件所致;2、服务器501错误服务器不支持请求的功能,无法完成请求,服务器无法识别请求方法时可能会返回此代码。3、服务器502错误502错误是WEB服务器故障,可能是由于程序进程不够,请求的php-fpm已经执行
2020-05-19 14:09:00
2658
转载 软件版本GA、RC、beta等含义
GAGeneral Availability,正式发布的版本,官方开始推荐广泛使用,国外有的用GA来表示release版本。RELEASE正式发布版,官方推荐使用的版本,有的用GA来表示。比如spring。Stable稳定版,开源软件有的会用stable来表示正式发布的版本。比如Nginx。Final最终版,也是正式发布版的一种表示方法。比如Hibernate。RCReleas...
2020-04-13 14:45:07
269
转载 (转)postman中 form-data、x-www-form-urlencoded、raw、binary的区别
1、form-data:就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也...
2020-03-04 22:01:24
485
转载 php 解决修改memory_limit失效的问题
今天要安装新的工具,要求修改php.ini的memory_limit的限制最小为512M,于是娴熟的打开php.ini,找到memory_limit,把128M(默认值)改为512M,保存,退出。重启nginx和php,大功告成。等等,想验证一下,打开了phpinfo(),结果显示memory_limit的值是196M,瞬间感觉奇怪,反复修改了几次,都没有用。于是找到php-fpm.conf,打...
2019-12-20 14:57:55
4586
原创 php使用weiboad/kafka-php推送错误Could not write xxx bytes to stream解决
线上使用php的客户端是 https://github.com/weiboad/kafka-php 版本:dev-master线上经常报错误:Could not write 1422 bytes to stream追查源码后发现在CommonSocket.php 文件中 writeBlocking方法 public function writeBlocking(string $buffer...
2019-05-28 14:48:48
1455
原创 glide 拉取Update failed for golang.org/x/sys 错误问题
近日在学习go中用glide拉取golang.org/x/sys报错误根据网上设置mirror也是不行的最后看到一篇文章最好的方式就是 设置代理!export http_proxy=‘http://localhost:1088’export https_proxy=‘http://localhost:1088’然后在执行 就可以了取消使用unset http_proxyunse...
2019-05-14 17:31:43
621
原创 elasticsearch空index搜索排序报错问题( No mapping found for [avg_pv] in order to sort on)
今天运维群里通知生产环境ES查询出现错误 No mapping found for[DEBUG][o.e.a.s.TransportSearchAction] [qtt-public-es-bje-qtt-public-es-06-c] [lw_analysis_author_week_board_1_201904][4], node[Yg4ArHVlQHKYOv1qS0dR_Q], [P]...
2019-04-02 14:39:39
23519
原创 nsqadmin上UPSTREAM_ERROR: Failed to query any nsqlookupd 错误
在自己搭的docker nsq测试环境上有UPSTREAM_ERROR: Failed to query any nsqlookupd: Get http://192.168.121.21:4161/lookup?topic=test: dial tcp 192.168.121.21:4161: connect: no route to host 错误猜测可能是防火墙拦了查看防火墙状态: ...
2019-02-19 14:49:32
4623
转载 mysql分区表之一:分区原理和优缺点【转】
1.分区表的原理分区表是由多个相关的底层表实现,这些底层表也是由句柄对象表示,所以我们也可以直接访问各个分区,存储引擎管理分区的各个底层表和管理普通表一样(所有的底层表都必须使用相同的存储引擎),分区表的索引只是在各个底层表上各自加上一个相同的索引,从存储引擎的角度来看,底层表和一个普通表没有任何不同,存储引擎也无须知道这是一个普通表还是一个分区表的一部分。在分区表上的操作按照下面的操作逻...
2018-07-05 10:59:12
1255
原创 Win10下Wireshark找不到接口的解决办法
Win10下安装Wireshark,打开后可能出现“没有找到接口”提示,可能是由于其自带的Winpcap不支持Win10 http://www.win10pcap.org/download/下载安装Win10Pcap可解决此问题...
2018-05-14 10:19:58
7929
原创 supervisord多实例运行
服务器上已经运行了一个supervisord的服务 不过是在root权限下 在线上是没有权限的,自己想是否可以自己运行一个实例呢 研究后发现是可以 查看:$ supervisord -hsupervisord -- run a set of applications as daemons.Usage: /bin/supervisord [options]Options:-c/--...
2018-05-04 17:02:39
1191
原创 php 脚本连接出现General error: 2006 MySQL server has gone away错误原因排查
今天在公司测试环境中和其他部门项目联调,等了好长时间也没有发现我负责项目数据传递过去,看日志发现出现:exception:HY000:SQLSTATE[HY000]: General error: 2006 MySQL server has gone away 首先说明 我的是后台php以守护进程的形式运行的第一反应 以为是mysql挂了 看来下mysql也是ok的,带着不解百度了下,...
2018-05-04 15:34:37
5568
原创 linux 使用ctrl+r进行搜索输入过的命令
在Linux系统下一直用上下键查找以前输入的命令,这个找刚输入不久的命令还是很方便的,但是比较久远的命令,用上下键效率就不高了。那个history命令也是个花架子,虽然功能多,但不好用,网上找了下,发现了用ctrl + r这个快捷键查找历史命令,研究了一下发现真是好用。按下这个快捷键后,进入了反向搜索状态,这时你输入一个字符,系统会找到最近一个包含这个字符的命令,如果不是你想要的命令,你可以继...
2018-04-10 22:06:06
2958
原创 Xshell部分常用的快捷键
Xshell,一款强大的终端模拟工具,通过网络可远程连接Linux。Linux快捷键在Xshell中也实用的:ctrl + L 清屏ctrl + U 删除光标前字符ctrl + K 删除光标后字符ctrl + A 光标移动行首ctrl + E 光标移到行末ctrl + 左右箭头 光标移动到上/下一个单词ctrl + B 光标移动到前一个字符...
2018-04-04 15:44:10
1519
原创 读书成长之路
2017年读过的书《Linux高性能服务器编程》《图解TCP_IP_第5版》《NGINX高性能WEB服务器详解》 2018年读过的书《Docker从入门到实践》
2018-03-22 12:04:07
189
原创 linux 压缩解压常用命令
01-.tar格式解包:[*******]$ tar xvf FileName.tar打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)02-.gz格式解压1:[*******]$ gunzip FileName.gz解压2:[*******]$ gzip -d FileName.gz压 缩:[*******]$ gzi...
2018-02-24 16:20:33
184
原创 nginx 日志统计常用命令
IP相关统计统计IP访问量(独立ip访问数量)awk '{print $1}' access.log | sort -n | uniq | wc -l查看某一时间段的IP访问量(4-5点)grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l ...
2018-02-24 10:49:29
371
转载 git在windows和linux之间换行符问题
背景 在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。但 DOS/Windows 一直使用 0x0D0A(CRLF)作为换行符。Git提供了一个“换行符自动转换”功能。这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UN...
2018-02-24 10:06:04
4860
1
原创 U盘安装Centos 7 dracut_initqueue xxx 错误问题解决办法
公司有台闲置机器用来装一个linux来做开发机,使用UltralSO制作的CentOs 7 U盘启动盘,在安装过程中出现了 dracut_initqueue[xxxx]: xxxxxx的错误 查资料发现 官方发布的CentOS-7的ISO文件包含了特殊的分区信息,从而导致之前在CentOS-5、6上有效的制作U盘安装盘的方法失效。制作出来的U盘无法正确引导、加载CentOS-7安装数据 ...
2018-02-11 11:11:45
3706
转载 Beanstalkd基本使用
安装官网:https://kr.github.io/beanstalkd/安装yum install beanstalkd --enablerepo=epel启动/usr/bin/beanstalkd -l 0.0.0.0 -p 11300 -b /var/lib/beanstalkd/binlog -F-b 开启binlog,断电后重启会自动恢复任务。配置文件
2018-01-05 15:55:17
1784
原创 七牛的架构师成长之路
七牛的架构师成长之路漫画地址:https://mp.weixin.qq.com/s/qTtVpctGBtTMc5Ifiib9Tw
2018-01-02 10:41:35
764
转载 Linux进程,进程组,会话之间关系
一个进程组可以包含多个进程 进程组中的这些进程之间不是孤立的,他们彼此之间或者存在者父子、兄弟关系,或者在功能有相近的联系。 那linux为什么要有进程组呢?其实提供进程组就是方便管理这些进程。假设要完成一个任务,需要同时并发100个进程,当用户由于 某种原因要终止这个任务时,要是没有进程组,就需要一个个去杀死这些进程,设置了进程组之后,就可以对进程组中的每个进程进行杀死
2017-12-28 19:22:45
609
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人