自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

泡泡茶壶的博客

技术记录

  • 博客(45)
  • 收藏
  • 关注

原创 一桩关于Json序列化引发的惨案(Go系统)

一个风和日丽的下午,线上系统突然开始报警(系统温馨提示,您的服务接口响应耗时已突破1s ) (-_-|||)当时脑门汗蹭的一下的就冒出来了,趁老板没杀过来之前立马开始紧急排查处理~

2023-07-04 13:27:24 561

原创 golang 服务中 context 超时处理的思考

公司运行的服务代码中,随处可见各种各样的日志信息,其中大多数是用来记录各种异常的日志,一方面,当出现问题时,通过日志我们可以快速的定位引发问题的原因;另外我们可以通过日志平台,对一些错误级别比较高的日志进行监控,从而能够快速响应系统可能会出现的问题。在Go语言中,Context是一个非常重要的概念,它存在于一个完整的业务生命周期内,ContextDeadline()Done()Err()和Value()。其中,Deadline()方法返回context的截止日期,Done()方法返回一个只读的。

2023-05-21 15:44:38 3402 1

原创 Go并发大坑:inconsistent mutex state 解决及心得体会

为时2周的异常排查之路…

2022-12-21 23:43:12 934

原创 一个关于有道云笔记快捷键的小坑

一个关于新版有道云笔记快捷键的小坑

2022-11-13 15:48:10 492

原创 线上GO服务出现GC故障,我当时就急了

新公司工作小半年了,线上系统没出过什么大问题,一直很稳定。但凡事总不可能一帆风顺,最近运维的监控群里,时不时的就会报服务健康检查警告如果一次两次还可以理解为网络波动。但是这段时间,我们小组的几个服务一直在被告警“点名“,上游的同事也在群里反馈请求错误异常增多,这下就有点坐不住了…立马着手开始排查问题。通常上游出现异常,第一反应基本就是查询错误日志,观察系统监控。那么笔者从业务日志上观察并未发现比较异常的点,但是在Grafana指标监控中发现了Go服务中某个实例GC异常升高(下图是是正常时候的状态,有问题

2022-06-19 16:56:52 1140 1

原创 啊哈哈哈,鸡(面)汤(经)来喽~(得物,B站,百度),附答案总结

文章目录前言得物前言2021年底不幸经历了裁员风波,尽管已经预感公司有点风雨飘摇的意思了,但是没有想到来的这么快。过完国庆后的一周。刚开完技术会议,方案定好,准备大干一场时,收到了leader的飞书,让去会议室聊聊。leader表现的很诚恳,公司也是第一次大规模裁员,赔偿方面也没有卡。木已成舟,从会议室出来后,笔者开始快速思考下一步该怎么走。第一次亲身经历裁员,内心的紧迫感是前所未有的。随后的时间里,笔者开始开始整理过往工作经历,疯狂复习 + 刷题。在公司办理完所有手续之后,一边开始投递简历,一边继

2022-02-12 02:48:57 2221

原创 关于电商搜索中Elasticsearch的正确使用姿势--检索篇

文章目录前言检索的前一步检索分数sortoperatorandor改变权重functionScore聚合前言书接上文,我们为电商项目做了个性化的索引配置之后,加下来就是正式的使用了。再ES的检索方面,也有一些值得注意的小技巧。本篇将会着重讲解笔者在使用ElasticSearch(下面简称ES)进行检索时的一些心得体会。如果没有看过配置篇,可以移步这里: 电商项目中使用ES–配置篇检索的前一步检索分数sortoperatorandor改变权重functionScore聚合...

2022-02-07 02:57:25 2558

原创 关于电商搜索中Elasticsearch的正确使用姿势--配置篇

文章目录前言什么是ElasticsearchES快在哪里前言过年啦过年啦,总算是闲下来了,笔者自从上次文章更新之后经历了许多事情(裁员风波,面试找工作等等),最近总算是安定下来了。言归正传,笔者在之前接触Elasticsearch很少,在新公司中,接触到了以电商搜索推荐为主的项目,其中就大量运用到了Elasticsearch(以下简称ES),并收获了不少经验。本篇就来围绕如何在电商搜索中正确高效的使用ES聊聊笔者的一些心得。什么是ElasticsearchES是一款分布式搜索引擎,这里注意点重点

2022-02-05 21:59:57 3216

原创 《微服务设计》读书笔记一 - go微服务进阶之路

文章目录前言微服务什么是微服务自治性微服务的好处微服务集成一个错误的案例编排与协同关于RPC的使用设计规范可变性计划代码治理高内聚,低耦合上下文界限前言许久未读书了,今天咱来读一读《微服务设计这本书》,豆瓣评分8.7,简单看了下评论,这本书对于微服务和一些开发实践的论述还是可圈可点的,读书过程中会将一些重点记录下来,力求提取精炼书中的精华所在。微服务什么是微服务微服务就是一些协同工作的小而自治的服务。每个服务很小,专注于做好一件事。每个服务内聚了专属于自己的逻辑。内聚性理念:把因相同原因而变化的

2021-10-17 22:17:53 164

原创 DDD领域驱动设计实践心得-go微服务进阶之路

文章目录前言前言作为一名后端开发,面对每一个新开发的系统,心里都要有这样一个预期,自己将要亲手开发的系统,终有一天,将会长成参天大树。但并不是每个系统都会变成参天大树,随着业务的不断迭代,变成屎山也是非常有可能的。如果不希望以后经历屎山堆屎痛苦,那么,在一开始,我们就要考虑设计出方便维护和拓展的系统。...

2021-09-18 18:17:46 396

原创 go中使用grpc之心得 - go微服务进阶之路

文章目录前言编写proto前言上次发文章是什么时候的事儿了,笔者懒癌又发作了。最近这段时间公司进行项目重构,主要是从python往go方面迁移。理由是python项目在目前的web服务中遭遇了一些瓶颈,包括:代码规范混乱(写python的都知道,一个人就是一个风格)系统运行性能低下(这倒不一定就是python 的锅)语言老旧(原项目采用的是python2)由于项目是本身是一个微服务的架构,各个服务件本身是通过rpc去调用。原项目本身使用的rpc框架是grpc,在新项目中,仍然继续选择grpc

2021-07-11 15:23:28 2453 2

原创 Python思维遇到Go

文章目录前言语法打印print数据结构列表Map逻辑控制布尔判断循环/遍历分支判断形参语法特色上下文with语法异常捕获面向对象并发控制写在结尾前言难产小王子前来报道,这段时间忙着结婚,博客基本停了,可能几个月才出一篇,唉,难受啊(不,其实就是懒)_(:з」∠)_回归正题,虽然我最爱的依然是python,但是截止目前(2021年4月),go语言已经在互联网范围内越来越流行了。简洁的语法,优异的性能使得go语言受到各类大中小公司的青睐,尤其是一些前期依靠python搭建起系统的公司,都在尝试使用go进

2021-05-11 11:34:41 295 2

原创 字节面试深挖之redis数据结构

文章目录

2021-02-17 18:42:03 317 1

原创 字节面试深挖之mongo

文章目录前言问题一场景还原关于联合索引mongo关系型数据库(以mysql为例)关于联合索引避免回表问题二场景还原mongo中3种聚合手段聚合命令 (group / count / distinct)聚合框架 (aggregate)聚合模型 (MapReduce)结语参考前言前一段时间接到了字节跳动的面试邀请,怀着略有些紧张的心情参与了面试。整体体验下来,面试难度是比较高的。面试官提出的问题需要对你所使用的工具、语言及框架有比较深入的理解才能够从容应答。本篇着重解析笔者面试过程中被提问到的mongo相

2020-12-07 13:35:47 379

原创 至暗时刻的一丝曙光:关于对接银行项目的一些感悟(续)

文章目录前言开发部署方面部署方案的限制资源申请的限制网络环境的限制使用长连接需要注意的点静态资源共享挂载使用SDK测试SIT(集成)测试UAT(验收)测试PT(压力 / 稳定性)测试数据库服务器CPU过高系统运行服务器CPU过高接口响应时长超标间歇性CPU冲高文档结语(和一些吐槽)前言上一次更新银行的文章,已经3个月之前的事情了,当时说的啥来着现在看来,还是太天真了,回首望去,那时的项目进度估计才堪堪走了一小半…(笑哭),本人也从一个懵懂无知的少年,变成了一个饱经沧桑的大叔(项目经理亲口描述,哈哈)

2020-11-22 03:50:08 550 2

原创 TCP协议讲的头头是道,你却告诉我你不会抓包?

文章目录前言回顾一下网络协议尝试去ping/telnet一下pingtelnet前言曾经有这么一个尴尬的瞬间,当时我在排查一个接口的通信问题。现象很直接,就是无论如何接口都无法连通。在我抓耳挠腮之时,同事直接灵魂直击:为何不直接抓包看看呢?我:卧槽…不会…同事:面试的时候网络协议说的头头是道,怎么一用就不会了呢 = =…提这件事是因为,当因为通信问题使得系统出现故障时,进行网络抓包是一个非常有效的定位问题的手段,自然而然,我们需要去学习一些抓包的手段帮助我们排查问题。本篇的定位以使用为主,不会涉

2020-11-16 01:12:25 455

原创 python魔术修炼手册

文章目录前言来自语言的魔术python实例构建与初始化__new__ :构建类实例时首先执行__init__ :通过它对类实例进行初始化属性操作__getattr__ :当访问一个实例中不存在的属性时会调用它__setattr__ :给对象属性赋值无限递归赋值__del__:当对象被执行垃圾回收时调用它比较你的对象__eq__:当对象进行 == 比较时会调用它__ne__:当对象进行 != 比较时会调用它__lt__:当对象进行 < 比较时会调用它__gt__ :当对象进行 > 比较时会调用

2020-09-20 18:01:41 277

原创 来自Pycharm的善意提醒,那些值得你注意的小细节(持续更新)

文章目录前言python 编码规范命名类Class names should use CamelCase conventionVariable in function should be lowercaseShadows name 'use_a' from outer scope排版类PEP 8: W292 no newline at end of filePEP 8: E303 too many blank lines (2)PEP 8: E501 line too long (166 > 150

2020-09-05 21:08:08 15162 5

原创 当pandas用的像sql一样,是否还有必要继续坚持?

文章目录前言什么是pandas像使用sql一样使用pandas常用命令对照新增数据插入查询数据IN...NOT IN排序GROUP BY, COUNT, (分组下的)ORDER BY修改数据删除数据前言本篇立眼于公司项目中数据分析与报表生成的技术方案,主要是针对pandas数据处理方面与SQL的异同发表一些心得见解。目前项目中使用的BI报表功能,其底层数据支撑来自于经过pandas处理生成的H5文件。报表展示的是聚合之后的数据,这就涉及到对数据的筛选,分类以及聚合。什么是pandas网上针对pan

2020-09-04 02:05:52 813

原创 至暗时刻的一丝曙光:关于对接银行项目的一些感悟

文章目录前言前期准备文档方面前言前段时间,公司接到了一个银行的对接项目,前期一番沟通过后,由我来负责跟进这个项目。嘛~在做之前首先需要了解一些银行的开发背景和需求,大致如下:银行内部使用封闭式的开发模式(开发机、服务器均无法直连外网)需要私有化部署需要驻场行内6点左右就下班了(需要协调行内系统对接的沟通时间)以上是大的背景~前期准备文档方面跟行内的架构师讨论项目的部署方案,直观的感受就是,银行可真有钱…一套B类系统(就是非主要系统)。对方要求在两个城市分别要构建数据中心,每个数据中

2020-07-20 01:13:37 1490

原创 数据密集型应用系统设计(DDIA)读书笔记(10~12章)

文章目录前言十、派生数据流处理系统前言最近活真是多,忙里偷闲,磨磨蹭蹭的终于把DDIA看完了,后面几章看起来说实话比较费劲,还是需要结合实践反复理解,最后一节讲到了道德约束,感觉就是像是武林前辈把绝世武功秘籍传授给你之后,叮嘱你一定不要把它用在邪门歪道上,23333在此强调,书中的小结皆是精华,一定要反复阅读十、派生数据整合不同系统是大型应用中最为关键的任务之一 P363记录系统 P363一个记录系统被称为真实数据系统,拥有数据的权威版本。如果另一个系统与记录系统之间存在任何差异,那么以

2020-05-29 00:06:29 636

原创 如何高效维护API文档,不妨看看这个(原标题: Tornado集成Swagger使用调研)

文章目录前言文档的好处与“坏处”几种比较流行的工具confluenceRay2Swagger基本用法:编写Swagger API Spec高级用法:集成后自动生成API文档关于Tornado集成Swagger总结参考文档前言开篇首先给出结论,目前tornado与swagger的集成程度并不高,如果想要通过swagger自动生成API,需要对其进行深度定制,下面给出调研的一些结果商业项目中,随...

2020-04-26 00:22:24 1691

原创 mongo认证配置又出问题了?来看看这个

文章目录前言正常配置过程坑1: 起mongo终端引起的权限问题坑2: 集群中配置认证引起的问题终极权限-root总结参考文档前言某个晴朗的工作日,我正在自己的工位上勤勤恳恳的工(hua)作(shui),此时总监突然微信我:“小刘,这会儿工作忙吗?”,我当下后背就是一凉,慌忙回复到:“总监,我这会儿闲的很,哦不,是忙的很”。沉默了2秒之后,总监继续说到:“…这样啊,我这儿有个任务交给你,公司有两...

2020-04-19 18:36:21 2527

原创 关于redis那些你不得不知道的事儿(一)

文章目录前言前言redis(全称:Remote Dictionary Server,即远程字典服务),近年来可以说是火遍了大江南北,它能干的事儿是真不少。最基本的,做为系统缓存我们可以使用它;我们还可以使用它维护一个高效的消息队列。Redis能够实现的功能远远不止于此,小小的键值对被玩出了无数的花样(当然这和Redis本身提供的丰富功能也脱不了关系)。如果你已经迫不及待的想要使用Redis干...

2020-04-12 20:15:54 344

原创 数据密集型应用系统设计(DDIA)读书笔记(6~9章)

文章目录前言一、数据分区二、 事务三、分布式系统的挑战四、一致性与共识参考文档前言已经读完本书的第二部分了,发现第一篇读书笔记中的第5章应该放到这一篇来的,算了,有空改一下目前读到这儿的最大感受是,共鸣非常多,就是平时有很多耳熟而不一定能详的名词术语,在本书中都有多次提及并进行了详细的讨论(例如:数据分区,事务,ACID,分布式系统,CAP理论, 两阶段提交, ZooKeeper等)书中...

2020-04-10 14:31:10 1025

原创 数据密集型应用系统设计(DDIA)读书笔记(1~5章)

文章目录前沿可靠、可扩展、可维护的应用系统前沿漫长的内功修炼过程,阅读过程中产生的读书笔记,可以看成是本书目录的升级版(笔记中详略均根据本人主观意见产生)可靠、可扩展、可维护的应用系统构成数据密集型系统的基本模块 P11硬盘的平均无故障时间(MTTF)约为10~50年 P15滚动升级 P16假定“人”是不可靠的,那么该如何保证系统的可靠性呢? P17即使一个系统现在工作可靠,并...

2020-04-02 18:24:55 1139

原创 Prometheus资源监控工具使用小结

前沿有段时间没有更新博客了,在保持低产这方面,我算是契而不舍了ε=ε=ε=ε=ε=ε=┌(; ̄◇ ̄)┘虽然写的东西已经烂大街,也算是一种回顾,这种心路历程和对所写东西的理解才是本文中独一无二的东西,照例会把参考文档都写到最后以供参考。...

2020-03-01 20:20:14 2191

原创 Prometheus资源监控工具配置小结

文章目录前言执行手册下载并安装 Node Exporter配置自动启动下载安装 Prometheus配置Prometheus配置nginx代理转发运行Prometheus配置开机启动grafana安装配置告警组件Alertmanager安装配置配置规则文件关联prometheus集成alertmanager加入规则文件alertmanager 配置邮件告警拓展expoter拓展多渠道告警参考文档...

2020-01-05 22:24:36 1024

原创 如何编写脚本对项目代码进行分析(测试篇)

本篇将从一个测试的角度,对于在开发过程中,如何对代码进行完善的测试(包括功能以及性能的测试)。(内容属于杂谈,可能不够严谨,但希望能帮到看到这篇文章的各位)前言我想没有人会质疑测试的重要性,我们自己编写的代码,可能需要经过很多次的测试才能上线使用。有些bug可能是微不足道的,但是有些bug则可能是致命的。要想尽早的消灭这些bug,那么测试就成了非常重要的一环。对于测试,有着非常多的资料

2019-10-25 11:50:33 9028

原创 代码管理之git submodule 使用小结

前言实现客户的定制化项目的过程中,有这么一个需求,当后端数据有更新时,需要将更新的数据及时发送给前端做展示。故而有了这一篇分享:如何使用Django + channels搭建一个基于websocket协议的web应用。需求分析针对这个需求,通常我们会考虑如下两个解决方案:前端轮询websocket推送前端轮询...

2019-10-07 04:45:12 3077 1

原创 基于docker的django + mysql + nginx应用部署实践

引言最近这段时间空闲比较多,稍微研究了一下docker。并尝试使用它部署了一个基于Django的后端应用。前前后后遇到过不少问题,在这里做一个流程的总结。下面就来开始愉快的踩坑之旅吧~一台服务器首先,得有台Linux服务器对吧(我的阿里云快到期了,然而续费好贵…),系统对版本没有特别的要求,这里不得不佩服Docker镜像的强大(你可以把他当成一种文件系统,通过它,我们可以构建一个轻量级的“...

2019-08-24 17:03:26 700

原创 关于Python异步编程的一些心得(二)

引言话说上一篇,我们聊了一些使用多进程,多线程,I/O多路复用的编程技巧来提升socket应用的性能。本篇,我们介绍异步编程界的另一个主角——协程。为什么要使用协程执行效率极高相较于多线程机制,协程的调度是由程序自身控制的,因此没有象多线程一样切换的开销。多线程场景下,线程的数量越多,协程的性能优势越明显。无锁由于协程的运行都是在一个线程中,所以不存在多线程的线程安全问题,也就是说,不...

2019-08-18 22:20:21 310

原创 关于Python异步编程的一些心得(一)

引言由于在Django项目中使用了基于协程的websocket框架,故而打算对异步的工作原理进行一波深入的了解。热身回顾一下与异步编程相关的一些概念阻塞程序未得到所需计算资源时被挂起的状态。程序在等待某个操作完成期间,自身无法继续干别的事情,则称该程序在该操作上是阻塞的。常见的阻塞形式有:网络I/O阻塞、磁盘I/O阻塞、CPU上下文切换、用户输入阻塞等。非阻塞程序在等待某操...

2019-08-15 16:24:49 945

原创 使用svg实现一个半圆圆角进度条

前言在使用echarts环形图实现半圆进度条的过程中,遇到一个究极蛋疼的问题,这个进度条需要是一个圆角的,但是目前echarts对圆角的支持并不完善(只支持平角和尖角,尖角的实现请看:使用echarts实现多重环形图)所幸的是,UI对于进度条的的要求并不严格,既然这样的话,我们可以使用svg自己画出一个理想中的圆角进度条先来看看效果:效果还是能看的,下面讲讲如何去实现它一个圆无论如何...

2019-07-17 15:44:46 9230 4

原创 Vue项目中使用高亮编辑器(Monaco)

前言虽然作为后台开发,但是前后端都是需要懂一些的~那么问题来了,最近在写前端的过程中有这么一个需求,需要对网页中的json进行高亮显示,考虑到自己手动通过匹配修改dom会花费很多时间,于是灵(准)机(备)一(偷)动(懒),通过直接在网页内嵌入代码编辑器实现高亮(顺便还提供了许多额外的功能,哈哈)然而配置过程并没有想象中那么顺利,这里记录配置的过程以及一些遇到的坑,方便以后在遇到时可以愉快的绕...

2019-03-02 19:59:27 12655 42

原创 Ubuntu下的Nginx + Uwsgi + Django项目部署详细流程

前言这篇博客主要介绍标题中写明的项目部署流程,以及解决部署过程中可能遇到的一些问题,在开始之前,墙裂推荐这篇文档: Setting up Django and your web server with uWSGI and nginx 看完这篇文档,你可能已经能够解决90%(甚至100%)的问题了,剩下10%的问题(我所遇到的)将穿插在我部署的过程中进行解决。(第一次部署的过程十分粗糙,...

2018-09-12 18:37:16 9408 2

原创 针对Virtual box安装回退的一系列可能的原因及解决办法(欢迎评论补充)

前言上一周遇到一个特别艹蛋的问题,公司电脑的virtual box虚拟机提示更新升级 ,按照

2018-08-21 12:34:47 5456 2

原创 (python)实现一个简单的图片文字识别脚本

快毕业了,除了准备答辩之外,就是看看书,各种瞎晃~ 那么,这两天在看书的时候遇到这么个问题: 首先,部分电子版的书籍是以扫描图片的形式展现的,在阅读过程中无法选取文字。对于平时有记录习惯的我来说,无法复制黏贴真的很不爽! 为了解决这个问题,我需要这样一个脚本,他有下面这些功能:1、能够实现自由截图 2、能够识别含有文字的截图 3、将识别出的文字输出到剪切板大致上需要的东...

2018-04-04 10:43:32 14185 2

原创 基础SQL语句整理

好久没写sql语句了,面试的时候被怼到,超级郁闷:( 回来之后花了一个晚上怒补了sql的基本知识, 下面是参考的sql必知必会写出的基本sql语句,方便以后查看~~_(:з)∠)_检索数据SELECT a1, a2, a3FROM A;检索所有数据SELECT *FROM A;去掉检索中重复的值SELECT DISTINCT vend_idFROM A;限制检索结果的行数SELECT a1

2017-09-10 01:39:38 458

原创 如何编写脚本对项目代码进行分析(性能篇)

在开始之前,先看看这样一句话: 我们应该忽略一些微小的效率提升,几乎在 97% 的情况下,都是如此:过早的优化是万恶之源。—— Donald Knuth大部分时间,我们对性能的要求也许并没有想象中那么苛刻,这种想法是正确的。毕竟能够让程序正确的运行起来,就是最好的优化了。

2017-07-31 16:37:32 1323

空空如也

空空如也

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

TA关注的人

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