自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 [源码阅读]ngx_http_userid_module模块源码分析

本文使用nginx-stable-1.12代码。 路径:src/http/modules/ngxhttpuseridfiltermodule.c流程图头文件 // nginx配置类 #include <ngx_config.h> // nginx核心类 #include <ngx_core.h> // nginx http模块类 #include <ngx_http.h> define常.

2020-06-22 22:28:47 453 1

原创 python入门学习——python3及scrapy安装

说来惭愧,python3已经发布了这么久,竟然还未使用过。此次,由于公司项目需要开始学习使用python3。且,scrapy是利用python做爬虫的很好的开源项目。python3下载python官网https://www.python.org/downloads/release/python-363/wgethttps://www.python.org/ftp/python/3.6.7/python-3.6.7-macosx10.9.pkg安装一直继续下去就可以完成安...

2020-06-22 22:27:00 202

原创 一次Base64编码图片url遇到的问题

最近在做一个项目的时候遇到了一个问题,为了解决这个问题花了不少时间,在此记录下来方便日后遇到类似的问题可以帮助解决。问题描述项目是利用golang程序生成一个NBA季后赛排名预测的图片。因为要把NBA球队的简称文字拼到图片上,所以这些问题要转换成base64编码。然后,后来我发现"快船"这个队似乎不受欢迎,调试的时候我每次加上这个球队,生成的图片上传到七牛云就报错。错误文案提示是有错误字符。并且访问生成的url也返回400错误吗。发现问题百度搜索了半天有一些思路,但是还是没有..

2020-06-16 12:16:24 1361

原创 线上Nginx 502 Bad Gateway问题分析

今天一个接口502,不理解一个逻辑很简单的接口怎么会失败。因为我们的的架构是ofe+nginx+php,熟悉这个架构的人都知道,502错误码通常是php-fpm对应的fastcgi进程处理不过来请求导致的。502状态码也叫网关错误,通常是因为并发请求高超过php-fpm处理能力,导致nginx没有从upstream收到正确的返回结果。nginx从上面的图中可以看到,upstream_time超过了5s,而正常的请求只需要10ms左右。乍一看像是超时,因为nginx.conf里面配置的fa..

2020-06-16 12:14:56 1866

原创 Golang & Beego入门学习笔记

前言近几年golang越发流行,beego是利用golang开发web项目的框架。开始项目前推荐下载Goland编辑器(土豪可以买正版),或者用vim也是极好的。然后再就是安装golang,beego,并配置环境。安装gomac上安装golang很简单:brew install go安装成功。配置首先,创建工作空间gopath/。分别有bin/, pkg/, src/ 三个目录。分别用来放置编译生成的二进制程序,工程依赖的安装包,工程源代码。且,src目录下可以包含多个项..

2020-06-16 12:11:05 605

原创 手把手教你安装php redis扩展

php是世界上最好的语言。LNMP是web及APP后端开发最好的架构。做web业务开发redis是缓存或者数据库非常好的选择。php与redis的结合也非常方便,只需要安装phpredis扩展即可。下载phpredis源码https://github.com/phpredis/phpredis/releases找到你想要下载的版本1、 wgethttps://github.com/phpredis/phpredis/archive/4.2.0RC1.tar.gz2、 解...

2020-06-16 12:05:32 317

原创 Linux环境下安装配置Redis

redis是非常好用的开源noSql软件。我经常使用,但是原理并没有太深究过。这次,想通过自己亲手安装来体验一下redis从0学起的感觉。这篇安装文档对初学者来说就算是入门教程了。安装和配置首先是安装, redis的源码安装非常简单。https://redis.io/ 从官网下载想要的版本,我选择的是最新的4.0.11。 下载 wget http://download.redis.io/releases/redis-4.0.11.tar.gz 解压 ..

2020-06-16 12:03:36 143

原创 在阿里云上利用Let’s Encrypt和Nginx实现网站支持https协议

https协议越来越流行,很多大型网站早已完成从http到https协议的迁移。安装一个https安全认证CA证书在公司内是很容易的,但是对于个人开发者来说总会遇到一些坑。前段时间自己买了阿里云的ECS虚拟机,所以想玩一下https。阿里云提供的CA证书价格不菲,于是我选择了Let’s Encrypt提供的免费证书。写此文的目的有二: 记录下自己踩的坑,因为记忆深刻所以值得后面做事时思考。 帮助遇到相同问题的朋友,多一个思路。 由于我的机器上早就安装过nginx,并且也编译了h.

2020-06-16 11:56:37 347

原创 Linux系统top命令结果分析

Top是Linux服务端研发的最常用命令之一,我们经常要关注线上服务器的状态。Top命令可以反应出当前机器的配置,用户进程,还有cpu,内存等使用量,以及load average负载。机器的负载,cpu,内存等使用情况对该机器上运行的进程影响很大,在一个高负载的机器上运行的进程也很危险,长期高负荷运行的机器可能宕机,就像长期处于高压力下的人可能生病一样。下面我们就来分析一下top命令的结果。负载load average上面这张图就是我截取机器上的一个top命令结果,最上面一行是总览u..

2020-06-16 11:48:56 945

原创 研发工程师入门——Linux系统基础

Linux操作系统是目前互联网研发工程师最常用的操作系统,无论是前端还是后端或者客户端同学,都会接触到。尤其对后端工程师来说,不了解linux系统,几乎寸步难行。我在面试中常常碰到应聘者连最基本的linux操作都不会,最常用的命令也不知道,那么很难说他可以胜任一份研发工程师的工作。对于一些比较负载或者功能强大的shell命令,可能用到的少,不会情有可原,但是如何查看机器的配置,一些常见的文件操作,vim命令等应该是最基本的。操作系统1.如何查看系统基本配置内存:free -m / -g磁

2020-06-16 11:46:57 785

原创 记一次Golang内存泄露问题分析

背景最近开发了一个推送项目,使用Golang作为开发语言。作为Golang的入门小白,本着拿来主义改造了别人的代码,按照自己的逻辑开发完,测试通过后就上线了。上线后一天通过falcon发现内存一直在缓慢的增长,知道了有内存泄露后但是无从下手。单机内存从4G增加到8G后并没有缓解问题,因为还是有OOM的隐患。为了彻底查清楚OOM的原因,在网络上看了很多文档,很多都是推荐golang pprof工具。其中《实战Go内存泄露》写的很好,非常详细。10次内存泄露,有9次是gorout...

2020-06-16 11:41:18 2910

原创 Mysql数据库update操作死锁问题分析

简介问题是这样的,我负责的一个线上模块的功能是给装有我们产品APP的手机设备根据业务功能打上特殊的推送标签。每个设备有多个不同的标签,每个标签下包括很多设备。由于用户在使用app时会触发很多逻辑,随时都可能有对标签的增删。包括一些辅助的脚本及离线算法计算结果,所以在同一段时间内可能存在针对同一个设备的一个标签进行修改的情况。基于以上前提,我发现近期经常会报出一些数据库操作失败的错误,打印出mysql错误日志如下:1213 Deadlock found when trying to get loc.

2020-06-16 11:38:08 1194

原创 [译]PHP编码标准

最近打算系统的阅读PHP7源代码,在看代码之前还是准备先系统复习一遍PHP语言,虽然已经用了几年了,但是并不算精通,所以先翻译一下Github上的php编码标准文档,原文如下:https://github.com/php/php-src/blob/master/CODING_STANDARDS.md译文下面列举了一些标准,想在PHP源码中做修改或新增代码的程序员应该遵守这些标准。因为这个标准在PHP3.0版本才出台,基础的代码并没有完全遵守规则,不过之后的新特性都遵守这个规则。此外还有一些部

2020-06-14 16:24:51 196

原创 记一次Golang程序崩溃问题分析思路

问题描述问题是这样的,线上一个推送服务以http接口方式支持内部其他服务的推送需求。众所周知,对于大多数APP来说push都是保证DAU的重要途径。所以,推送服务的稳定性至关重要。昨天开始,我负责的推送接口接连报了很多次502状态码,对应的推送请求也失败了。所以我用了半天的时间都在分析接口失败的原因。分析日志查看线上问题的最好方式就是分析日志,线上服务都会打很多trace日志。我的推送服务通过全局trace_id把请求串联起来,所以可以快速跟踪请求是否正常执行。分析日志我发现几个现象:

2020-06-14 15:56:57 1641

原创 如何做好APP消息推送

01简介推送通常被业内人士称为Push,作为现在移动互联网时代手机APP重要功能,它的稳定性和能力对一个APP甚至企业的发展至关重要。通过推送可以唤起APP的不活跃用户,提升与保持DAU有很大帮助。对应资讯类APP,对于推送的速度要求极高,因为对于突发性大事件,热点新闻最快触达用户是产品的生命线。而对于那些社交媒体应用,推送的作用在于增强用户之间的互动体验,比如我们现在最常用的手机APP微信,只要你打开推送的通知,我们每收到一条消息,都会在手机上弹出一个消息推送。消息延迟非常低,就像人与人...

2020-06-06 11:30:43 2221

原创 高性能推送服务架构设计

在上一篇文章『聊一聊APP消息推送那些事』中,我讲了手机APP消息推送的基本原理,这篇文章主要是从技术的角度,介绍一个高性能推送平台的架构设计。目的是分享一些我自己在推送上的经验,以及做推送平台中遇到的一些问题和解决办法,为那些遇到类似问题的朋友提供一些参考。# 01 背景由于本人目前就职的公司对于推送有很强的依赖,尤其是每天都会有很多时效性很强的内容需要通知到用户。和竞争对手比拼的就是速度,相同的消息到达用户手机上的时间决定了产品的竞争力,也体现了一个公司的技术实力。因此,公司非常重视推送的性..

2020-06-05 10:13:19 1061

原创 【译】在BigCache缓存中存储空接口

前言终于结束了两个月的找工作战役,前前后后面试了几十场,结果不是很理想,但是也还不错。经过这次换工作,我的感慨颇多,深刻感到自己最近2年多过于懈怠,成长缓慢。痛定思痛,今后一定要在一个领域深耕下去,提升自己的专业能力。Golang是我目前和接下来一段时间内的主要工作语言,遂决定在Golang的领域做深,做强,成为Golang专家,矢志不渝。今天在Go中文社区看到翻译小组,个人一直对翻译英文文档颇感兴趣,因此决定翻译一篇文章。原文地址:StoringEmptyInterfacesi...

2020-06-05 09:51:33 416

原创 Golang map range遍历结果不稳定问题

闲言少叙,本文主要是想介绍一个Golang开发常见的一个问题。然而,此问题对于初学者来说却经常容易陷入坑中。问题我在写一段代码时,使用了Golang的map数据结构,目的是想用map缓存计数结果。简单来说map的键也是整型的,且以递增顺序存储。我的最初想法是,在统计结束后,按照map中存储的键有序输出值。可是,当我运行程序时,结果并不是我想要的,而且有一定概率运行结果不同。问题代码func sortByBits(arr []int) []int { var bitmap = mak

2020-06-04 10:07:40 1031

原创 Mysql常用关键字指令和参数总结

欢迎关注微信公众号「野狐」最近在学习极客时间上的mysql课程,对mysql数据库有了更多了解,本篇文章是想总结一些mysql的基础知识。目的是加深自己的记忆,也可以提升对mysql设计原理的了解。关键字关键字 作用 关键字 作用 avg 平均值 as 别名 add 加字段 analyze 分析表 alter 声明修改 asc 升序排序 after 插入在

2020-06-03 08:41:41 864 2

原创 如何写出高质量的C++代码

c++编码规范,我推荐使用google_cpp_style_guide(其实我只用过这一种)。好的代码风格确实能让人赏心悦目,尤其在一定程度上能提高开发效率。这篇编码指南在internet上随处可以下载,我这里简单介绍一下自己的在实际coding的时候的一些经验。1.命名规则1.1 文件命名规则 我写过的c++文件命名不外乎一下几种: my_cplusplus_head.h m

2015-04-27 10:59:32 529

google c++ code style guild 代码风格指南

google创造并推荐的c++代码风格指南,本人亲身实践2两年,受益匪浅。推荐初学编程者认真阅读。

2015-05-11

哈工大计算机2009复试

哈工大计算机复试2009,编译原理,数据库系统,价值很大!

2011-03-05

空空如也

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

TA关注的人

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