自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (4)
  • 收藏
  • 关注

原创 DEBUG Starting new HTTP connection -- requests的debug日志关闭

使用无效,如何解决?

2024-03-20 11:04:21 130

原创 实用翻译英语的Chrome插件

工作中,时常需要阅读网页技术文档,阅读英语技术论文,对翻译的需求很迫切;Chrome默认的翻译比较呆板;

2024-03-20 11:03:42 142

原创 实用Pycharm插件

Pycharm的离线安装:https://plugins.jetbrains.com/实时查看每一行的git blame信息: Gittoolbox。需要根据对应的Pycharm/Goland版本选取所需的。IDE侧格式化json字符串:json parser。实时提示快捷键:Key promoter X。转换IDE的英文为中文:Chinese。

2024-02-28 11:18:17 450

原创 rewrite or internal redirection cycle while internally redirecting to “xxxx/index.0b487106.js///////

这个报错有多种原因,本质上是规则不合理导致路由重复进了第二次,这里展示我这边的原因:location在匹配到~ /xxx后,又匹配上了另一条规则 /xxx解决方式:去掉重复的规则,或者在~ /里加上!xxx的排除规则去规避另外还可能是try_files的原因,具体可参考:https://serverfault.com/questions/505098/what-does-this-nginx-error-rewrite-or-internal-redirection-cycle-mean。

2023-08-09 15:31:45 7519

原创 nginx location的执行规则和root/alias的区分

看本篇文章不是教如何从0编写nginx配置,而是看懂已存在的nginx配置。官方文档定义:location [ = | ~ | ~* | ^~ ] uri { … }=:严格匹配,且匹配成功则不继续往下,优先级第一^~:前缀匹配,匹配到后不继续往下,优先级第二~:正则表达式,并且区分大小写,优先级次之不带任何修饰的前缀匹配,优先级最后这里面用的最多的是第4种普通匹配,然后2和3也会用上,1很少用,这时就要清晰意识到优先级的问题了,往往正则和普通的前缀匹配容易写重了,就会报rewrite的错误。

2023-08-09 15:31:08 335

原创 后端简易定时任务框架选择(Python/Go)--gocron

在使用Python的web框架中,包括flask/Django,其中大量用到celery;celery作为异步任务使用的多,同时也会用celery来跑些定时任务,比如每晚定时跑脚本、跑数据统计等闲时任务。但随着任务量的增多,celery的弊端就暴露,比如不支持很好的可视化(flower实属基类),比如任务异常失败了无从排查,比如定时任务异常未执行无从排查。框架简单,可以轻松接入支持良好的可视化支持多节点任务执行支持任务以来支持任务失败告警支持任务日志可查。

2023-04-12 14:24:07 798 1

原创 设计模式初版讲解

Define a one-to-many dependency between objects so that when one object changes state,all its dependents are notified and updated automatically. 在对象间定义一种一对多的依赖关系,当这个对象状态发生改变 时,所有依赖它的对象都会被通知并自动更新。

2022-12-01 10:52:24 528

原创 设计模式初版讲解

Define a one-to-many dependency between objects so that when one object changes state,all its dependents are notified and updated automatically. 在对象间定义一种一对多的依赖关系,当这个对象状态发生改变 时,所有依赖它的对象都会被通知并自动更新。

2022-12-01 10:48:04 441

原创 kubernetes学习(二) --------docker的基本命令,namespace和cgroups

答:容器本质上进程组,也就是单进程+其子进程是可控的,但并不是说容器里只有一个进程,比如我们还可以进入容器执行ping、netstat等命令形成额外进程,但这些进程并不是容器启动后控制运行的,能控制运行的有且只有一个。计算机本质上只认识0和1,代码编写的程序,就是二进制文件,也叫代码的可执行对象(executable image),当其执行时,操作系统接收到后,利用cpu+内存来实现程序的运行,其中堆栈负责存储指令和变量,寄存器负责存储值,加上各类文件和IO设备,就运行了起来。

2022-11-07 11:11:18 436

原创 kubernetes学习(一) -------- Docker和K8s的发展历程

4.2015年,由于Docker的快速发展,在容器化上有很大话语权,届时其他的PAAS厂商或者容器化厂商,需要重夺优势,于是成立了CNCF(cloud native computing foundation),意在推崇Kubernetes来解决容器化问题;:在PAAS解决上述问题时,绕不开的是打包和部署,而部署用容器化部署,本质上是Namespace和Cgroup来做这块,但是如何打包保证本地远程环境一致,Docker的image镜像横空出世,解决了这块的问题,使得Docker一下子步入大家的视野。

2022-11-03 10:50:54 390

原创 python es.scan报异常: ValueError: invalid literal for int() with base 10: ‘‘

可以确认是在scan内部报的异常,所以是第三方库的异常,第三方库的异常要么通过升级第三方库,要么通过定位到问题来绕过该报错。在用es.scan的时候,意外发现报错,而相关的错误网上没有资料可查,阅读官网也只是标明了通过raise_on_error来控制是否报出错误,但本身用es.scan就是为了大数据量的时候保证数据的完整性,如果跳过异常,那不是数据完整性得不到保证了,所以还是得确认问题异常。在思路未清晰的时候,需要花大量的时间去定位es第三方库,但如果定位到是字段的异常,那就一切简单了;

2022-11-01 16:43:49 524

原创 如何快速配置NFS

 & 上面几个参数是最常用的,简单介绍下 ro/rw表示只读还是读写,sync/async前者表示同步写入到内存和磁盘,后者标识先写入到内存,然后异步写入磁盘,则有一定几率丢失数据;& & 以服务端的/data目录,映射到客户端的/nfs_data目录为例,分别看下服务端(192.168.1.2)和客户端(192.168.1.10)的搭建。& & 配置完后重启nfs: systemctl reload nfs。& & 执行df -Th,此时就能看到挂载的目录,则表示挂载成功。& & 检查nfs服务。

2022-10-31 20:33:38 776

原创 研发效能度量 --- 思考与技术实现

写的较多较杂,后续主要考虑分享部分指标的实现策略。

2022-10-14 17:40:07 526

原创 elasticsearch 快照丢失部分的恢复 ----- 一种解决方式

举例说,我们的备份目录一般是存放在 /backup/indices/xxxx,这个xxxx就是es生成的标识md5码,此时每个节点,都有这样的目录,在这个目录下继续分 0/1/2三个目录,标识3个shard,将这三个目录在三个节点合并即可。es提供了数据备份和恢复的方式,可以很方便的供数据备份,同时应用于多套环境,且可以自定义备份目标(比如具体到索引),可以自定义备份策略(比如每天早上定时备份),可以说是非常方便,关于如何备份,网上的文档很多,有机会我也出一篇。所以恢复变得很随机,且不稳定。

2022-10-13 14:25:01 1156

原创 Django drf的快速实战学习

调用方式是在指定的视图下(viewset)指定类属性permission_classes = [permissions.xxx(具体类)],然后在具体类的下面重写上述两个方法,前者是只要是该视图类进来的http请求都会进入has_permission判断,后者则是在方法里调用了get_object()方法后会去调用的,而只要这两个方法任一返回False,则会返回前端403 respons。这里主要讲述实战经常用到的功能,而如果要全面的功能了解,官网是最好的途径。

2022-09-20 14:23:10 760

原创 服务偶发响应异常,curl几百次偶发几次异常(返回为空) --- 一种解决方案

之前有发布一篇文章,讲述curl后服务端返回rst的一种解决方案,详细:https://blog.csdn.net/weixin_42681866/article/details/123262531,当时通过抓包,分析到了是中间设备拦截导致请求未到服务端。最后定位到是dns的问题,当负载过高,导致内网dns出现异常,进而导致域名没有请求到对应的服务器ip上,所以没有发送对应的包。经过分析,比如我们丢失了10号请求,结果在客户端没有抓到发送的包,在服务端没有抓到接收的包。...

2022-08-29 15:09:37 852

原创 pg(postgresql): Error: Invalid data directory --- 一种解决方案

不过因为我是挂载的,所以先将docker-compose停止后,将挂载文件改为644(原先是600)后仍无效;查看发现是postgresql.conf挂载的文件内容为空了,重新将镜像里的默认文件配置导出一份后解决。并且原先挂载的数据并未丢失。所以Invalid data directory,标识pg的数据目录未找到,这个问题是由pg.conf里面指定的,所以碰到这个问题,要从pg.conf里寻找对应的问题。将postgresq.conf读写权限改为644即可。

2022-08-19 11:42:48 944

原创 es oom kill(异常停止)---一种解决方案

通过查看/var/log/elasticsearch/下的日志发现没有输出,通过journalctl -xeu elasticsearch,只能看到关停了(且是被kill -9杀死),但未显示详细原因;回到主题,通过查看linux的负载、cpu、内存使用情况,发现除了内存外都不是很高,而内存也是按jvm.options里设置的大小来运行的,所以也并未超出限制;在将es拉起的过程中,发现es的replica有部分编程unsigned(采用的是replica为1的备份机制),就顺手解决这个问题。

2022-08-19 11:41:16 834

原创 linux 命令行学习

前文  linux命令行玩的溜不溜,给别人的感觉就是专业不专业,所以熟练掌握linux命令行的使用是非常重要;使用  使用linux时,常用的命令比如ls、ssh、cat、touch等是非常熟悉的,但一些不常用的,但又非常有用的,比如sed、awk、ln等,经常要用到的时候不知道怎么用;这个时候会选择xx -h或者man xx来查看使用方式,但往往因为显示过多,找很久才能找到想要的;又或者通过浏览器google或者baidu查询,这又非常的低效;需要一个简易版查询命令的工具来简化流程;  这里推介t

2022-03-22 10:30:24 1044

原创 golang分布式队列解决方案

前文  项目开发过程中需要一个框架,可以实现异步队列,将整个项目解耦。由于项目主体是Python写的,Python里celery作为异步非常的广泛,但是celery的缺点是可视化不足,稳定性也不行,当线上量大的时候,容易出现不可知异常导致失败;  对于分布式框架,需求它轻量易接入,同时可以直接用redis做队列,而不需要再引入第三方组件如 MQ、kafka;Python这块相关的的确比较乏力,而golang高并发的性质在这块可以支撑很多,可选如下:goworker:https://github.co

2022-03-07 17:09:54 1952

原创 curl: (56) Recv failure: Connection reset by peer --- 一种解决方案

前文  两台服务器之间telnet端口能通,但是curl对应的端口却报reset by peer;从字面意思就知道被对端给reset了;  这两个矛盾点使得这个问题不好排查,排查两边的防火墙,都确认没问题;同步上网搜索了解决方案,基本都是防火墙的问题,验证防火墙最快的方式就是直接关闭,执行 systemctl stop firewalld即可;  如果是并发量高的时候被reset,可以执行ulimit -a,看下文件句柄数是不是1024,可以考虑上调到102400,具体调整搜下即可解决  如果应用

2022-03-03 20:03:28 40566

原创 Python celery Worker exited prematurely: signal 11 (SIGSEGV) --一种解决方案

前文  在一次架构升级后,Python celery遇到不知名异常,致使worker异常退出,最终导致可用worker数越来越少,任务卡死队列。  异常原因从celery日志看仅一个signal 11,从linux signal信号来看,signal 11标识Segmentation violation,即段异常,涉及到linux内核的数据异常,对于应用层使用celery来说,借鉴意义不大。需要进一步的异常排查定位问题。  celery版本:4.3.0;python版本:3.6.8排查  由于报错

2022-02-11 17:36:53 2083 1

原创 telnet 服务器端口不通的一种解决方式(高并发)

前文今天被一个bug给困扰,k8s集群上,不同节点的同个服务访问同一台服务器结果不同,区别在于如果同节点的并发量一旦上去,在该节点上去telnet对应服务器的80端口,会不通。排查因为是telnet直接不通,所以可以否定是应用层的拦截,定位在tcp层拦截,逐一排查防火墙、iptables等都未做拦截,并且注意到是当并发数上去后才会出现失败,继而通过抓包定位到当发往目标服务器三次握手是,即syn,目标服务器不会答复ack,而这边会不断重试(Retransmission)结论翻到一篇,写的很适合,直接

2022-02-10 19:52:11 12919

原创 grpc+golang与python交互

前文  关于grpc是什么以及python如何搭建,可以参考这篇:https://blog.csdn.net/weixin_42681866/article/details/121509556?spm=1001.2014.3001.5501,本篇说下如何基于golang来搭建;基本上grpc在golang的应用是非常广泛的,主要是用于agent和master的通讯,同时也是云原生的通讯必备;比如k8s就是用的grpc。实操  当我们定义好proto文件的时候,需要通过golang-tools将其转换为

2021-12-15 19:37:41 1575

原创 grpc+python解析复杂的字典嵌套、列表嵌套参数

文章目录前文应用前文关于grpc的介绍和初步应用,看这篇:https://blog.csdn.net/weixin_42681866/article/details/121509556本篇主要写出如何应用复杂的protobuf类型应用我们在写json的时候,最常写的格式就是字典嵌套列表,或者列表嵌套字典,对于这两者在grpc里如何实现protobuf转换呢?比如这样一个格式(示例一):{"food": {"fruit":"apple", "meat": ["pork", "beaf"], "e

2021-11-24 11:01:18 2361 2

原创 grpc+python的说明和应用

文章目录引用实操引用关于rpc和grpc这篇文章写得不错:https://zhuanlan.zhihu.com/p/148139089其中几点注意下即可:1.rpc即remote procedure call(远程服务调用),所以比如redis-cli和redis-server之间的通讯交互也是rpc。而其有三个特点:需要事先约定调用的语义(接口语法)需要网络传输需要约定网络传输中的内容格式2.网络传输可以是:http、tcp,所以可以说grpc包含了http,http是其传输的一种形

2021-11-24 10:36:59 913

原创 解决:distutils.errors.CompileError: command ‘gcc‘ failed with exit status 1 Building wheel for grpc

前文  在安装grpcio的依赖的时候,竟然发现了编译失败,网上找了一大圈的,都解决不了我的问题,比如下载python-devel依赖,比如升级pip等等,最后发现原来换个方式搜就能解决问题了。报错: We could not diagnose your build failure. Please file an issue at http://www.github.com/grpc/grpc with `[Python install]` in the title. Traceback (m

2021-10-29 14:50:36 5058 1

原创 golang日志框架--logrus+lfshook+file-rotatelogs

前文  golang自带的log可以满足小部分场景,而如果我们需要有个比较完善的日志模块,推介用成熟的框架,这里推介组合:logrus+lfshook+file-rotatelogs。  logrus目前是github点赞最多的日志仓库,达18k,其有丰富的hook,且可以自定义,并且天然兼容log模块;但缺点是不支持日志按文件生成,于是引入file-rotatelogs来支持日志按文件生成,且按天分割;最后引入lfshook来组合二者。使用安装  先安装依赖:在这里插入代码片...

2021-10-20 23:12:57 3988 1

原创 jenkins windows 编码异常解决方案

前文  jenkins的插件提供了windows和linux命令行的使用方式,如下:linux: sh ''windows: bat ''  但相对linux,windows在使用过程中会出现编码异常,比如输出一句中文,和查看文件夹目录,结果是中文乱码,文件夹目录正常输出。命令如下:bat '''echo '你好,世界' # 输出乱码echo 'hello world' # 正常输出dir # 正常输出'''分析&解决  原因是jenkins windows也就

2021-10-18 09:50:39 770

原创 windows runas 用一行命令输入密码

  windows没有类似linux的su、sudo,而最贴近的就是runas,可以用其指定用户来跑对应的程序或者命令。但是缺点就是要在交互形式下输入密码才行。而这也是runas的设计初就做的安全规则,实际上我觉得这个规则是多余的,用户自己为什么不能决定是否密码一行展示?实在不行,加个hash的配置不就行了?linux不就能一行命令,关于此,在Stack Overflow上也有很长的争议:https://stackoverflow.com/questions/16107381/how-to-complete

2021-10-18 09:43:33 2389

原创 err: command ‘gcc‘ failed with exit status 1 解决方法

解决安装pycrypto时失败,报错:err: command ‘gcc’ failed with exit status 1本质上是缺少了相关依赖。centos执行:yum install gcc gcc-c++ python3-devel pycryptoubuntu执行:sudo apt-get install libpq-devsudo apt-get install build-dep python-psycopg2...

2021-09-24 15:32:08 1438

原创 jenkins windows 编码异常解决方案

前文  jenkins的插件提供了windows和linux命令行的使用方式,如下:linux: sh ''windows: bat ''  但相对linux,windows在使用过程中会出现编码异常,比如输出一句中文,和查看文件夹目录,结果是中文乱码,文件夹目录正常输出。命令如下:bat '''echo '你好,世界' # 输出乱码echo 'hello world' # 正常输出dir # 正常输出'''分析&解决  原因是jenkins windows也就

2021-08-19 15:27:35 1752

原创 windows git fetch 时报错error: cannot lock ref ‘refs/remotes/origin/feature-1‘: there is a non-empty di

解决方式  看报错知道是存在feature-1这样的分支,导致在fetch或者pull的时候,发现该分支不为空而失败;同理其他cannot lock ref提示的错误也是相关分支异常导致。  处理手法,最简单的就是删除该分支即可,将feature-1分支删除,可以在本地.git上进入refs/remotes/origin删除,也可以直接到对应的gitlab或者github上直接删除该分支。  但上述只是快速解决方法,解决根因是因为:本例中报了 there is a non-empty directo.

2021-08-19 11:55:31 5359

原创 ambiguous import: found package github.com/spf13/cobra/cobra in multiple modules --解决方法

引用文章:https://stackoverflow.com/questions/63710830/spf13-cobra-cant-download-binary-to-gopath-bin在下载包用go mod管理时,会下载到$GOPATH/pkg/mod下。而在下载cobra的时候,会自动的在$GOPATH/bin目录下创建可执行二进制文件cobra,如果原先有添加如下命令道~/.bashrc里就能自动引用cobra作为命令行工具:export PATH=$PATH:$GOROOT/bin:$G

2021-07-21 10:13:57 2615

原创 Gitlab性能测试工具--Gitlab Performance Tool(GPT)

文章目录GPT相关文献测试环境搭建关于option配置的详解总结  Gitlab的升级迭代是非常快的,为了应对这么快的迭代发布,它也提供了一个非常好用的性能测试工具:Gitlab Performance Tool,简称GPT,通过GPT当我们需要搭建一个线上可靠的Gitlab高性能平台时,可以通过它来测试一些性能。  GPT虽然好用,但有个限制就是仅支持12.5及12.5版本后的Gitlab,而且一共推出了两个版本;经测试,两个版本都有同样的限制,这限制主要是其有个项目数据需要导入gitlab,然后基于

2021-04-10 08:58:08 1772 1

原创 NFS文件系统:一文带你了解和掌握NFS文件系统

文章目录前文相关文献原理缓存和无状态nfs的无状态nfs缓存一致性问题总结前文  linux-nfs文件系统全称是Network File System,即网络文件系统,是一种分布式系统。它的作用是允许客户端主机可以访问访问服务器端文件,并且其过程与访问本地存储时一样,它由Sun微系统(已被甲骨文公司收购)开发,于1984年发布。它的实现是基于RPC,依托UDP/TCP协议达成。&esmp; nfs文件系统当前共4个大版本:NFSv1,在SUN公司内部用作实验目的NFSv2,1985年发

2021-03-31 09:50:06 4194

原创 Gitlab:一文带你了解gitlab的基本内容

文章目录前文GitLab的历史和与GitHub的区别GitLab的搭建GitLab的升级特性总结前文  现在绝大多数公司的代码管理系统都是基于gitlab搭建的,即使是svn的,相信将来也会迁往gitlab,所以了解和掌握gitlab对开发者是非常重要的。比如git和gitlab、github的关系是什么,gitlab如何搭建,gitlab提供了什么功能,gitlab如何升级等等。  本文通过简单的介绍,帮大家了解gitlab。GitLab的历史和与GitHub的区别  首先我们看下三者的wiki

2021-03-28 15:39:50 1005

原创 推介学习:《计算机科学速成课》

文章目录前言介绍总结前言  对于计算机基础薄弱的,同时又特别想提升英语的同学,这里推介一门我认为非常好的课,同时我也是多刷也觉得很过瘾的课,刚好还免费,推介大家有空可以上去补一补计算机科学!因为是速成课,所以看起来很快,同时覆盖面也非常广!  话不多说,直接上链接:《计算机科学速成课》介绍  这门课是B站字幕组翻译youtube的课而来的,由大佬Carrie Anne讲述,从计算机的历史,到计算机的发展,到当今的人工智能、无人驾驶等技术,由浅入深,逐步倾诉。而B站字幕组贴心地给每门课都贴了中英文

2021-03-24 23:57:32 237

原创 vscode远程连接开发以及wget download failed解决思路

文章目录前文远程开发wget download failed前文  需要远程连接开发,本地环境是window,远程环境是centos7,且无法连接外网,用vscode在这上开发。远程开发  vscode远程开发通过安装Remote SSH扩展包,再通过离线安装即可。离线包下载(扩展为.vsix):https://marketplace.visualstudio.com/search?term=remote%20ssh&target=VSCode&category=All%20ca

2021-03-16 15:43:44 7515 2

原创 Python装饰器详解(一)

文章目录前言定义进阶总结前言  装饰器作为Python的基础,无论在面试还是在日常工作中用到的频率算是非常频繁的,而其本身的特点也非常适合用来考核水平,可以问的很浅,也能问的很深。在之前的学习中,我经常费劲心思去记录各种装饰器,比如普通装饰器、带参装饰器、类装饰器、带参类装饰器,觉得花里胡哨的,而平常用的不就是普通装饰器就够用了么,并且用的频率相对其他来说也不算很频繁,往往定义一个就够用上许久。  在这篇文章里,我会通俗易懂地讲述这些装饰器的存在意义,以及如何快速地记录和使用他们,话不多说,开始吧。

2021-02-26 00:48:36 1122 2

Redis开发与运维

《Redis开发与运维》这本书由浅入深,豆瓣评分9.0,实在是Redis的进阶必备书。作者是搜狐视频的技术中心总经理,结合日常实战和运用场景,深刻介绍Redis的强大之处,推介阅读!

2019-01-20

数据结构——Python语言描述

python数据结构良心书,相对于中文版的翻译,英文版某种程度上更易理解,并且有利于提高自身的英语水平!

2018-09-20

MySQL必知必会

MySQL入门必学书籍,书中用大量的例子来反复操作SQL语句,对新手入门帮助很大!

2018-09-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除