Code

grpc连接池

从我开始使用grpc到现在,也有不短的一段时间了,然而我还是没有把grpc的基本用法摸透。最近刚好又在看grpc,就来对grpc的连接做个研究 google官方提供的例子中,只有最普通的使用方式:创建连接,访问远程方法,销毁连接 然而在实际项目中,绝不可能如此简单,往往涉及到高并发、高频调用等问题,所以我们就需要考虑到连接性能的问题。 在访问数据库时我们也会碰到类似的瓶颈,在访问量大时,一个连接根本无法满足使用需求,而每次建立新连接的话,很快服务器的可用连接数就会消耗殆尽,所以我们使用连接池来解决这个问题。 这次,我们也要在grpc中尝试使用连接池,来帮助高频客户端提高连接性能。 首先,我们来对不同的连接方法能体现出的性能做个测试,测试使用官方的helloworld例子,改成多次调用。 为了测试,我们在以下方面做了改动: 服务端在响应前sleep 1s 客户端通过多种方式重复访问服务端(

Code

chrome network调试中排除特定项

在chrome中有个非常好用的开发者调试工具,我们经常用其来调试网页。最近我在分析微信网页版协议时遇到一个问题:在调试工具network中,很多我们不关心的请求也都会显示出来,而官方提供的几个过滤器又不足以满足我们的需求,这时我们就可以使用Regex自定义过滤了。 在调试微信网页版时,我想要把与api无关的请求都过滤掉,为了精确排除特定请求,我使用正则来进行排除。要排除的请求包括图片、js、css请求,剩下的基本就是api了。为了达到这一目的,需要的正则如下: ^(?!.*\.js)(?!.*\.jpg)(?!.*\.png)(?!.*\.gif)(?!.*\.css) 将这段代码填入Filter中,并勾选Regex后,我们就可以发现含有js、jpg、png、gif、css的请求都被排除了。我们可以根据需要,添加更多的排除项。 注:在新版chrome中,

Ionic

ionic下载缓慢解决方法(顺带说说electron)

最近帮妹子搭建ionic环境,过程中需要下载不少东西,下载时因为GFW的关系,速度特别慢,经过查询,发现可以通过一下方式解决 注:本问方法适用于Unix环境,Windows环境不保证适用 解决nvm下载速度慢的问题 nvm下载时可以通过设置环境变量NVMNODEJSORGMIRROR来解决,将一下代码写入.zshrc或.bashrc中,可以将nvm下载node的源设置为淘宝源 export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/dist 解决npm下载缓慢 在npm中下载时,因为用的时国外源,所以下载速度很慢,而国内淘宝镜像了一套完整的npm源,所以将npm的源设置为淘宝源可以获得较好的下载速度。 将npm的源设置为淘宝,有两个方法:

Golang

Golang http包req.Body只能读取一次的解决办法

今天参加实验楼的golang比赛,碰到个大坑,比赛要求把http请求的body取出后计算md5然后放入请求头中,然后我用一下代码读取body后,body就无法被再次读取了!无法,被,再次,读取!有毒! body, err := ioutil.ReadAll(req.Body) 经过20分钟调试,发现应该用如下方式来获取body,才不会导致body被抹掉: br, err := req.GetBody() if err == nil { body, err := ioutil.ReadAll(br) } 事实上,从golang1.

Golang

Golang使用http包的Client访问https报x509.SystemRootsError错误

前两天在写的一个api在服务器上跑着,使用http包访问https时报x509.SystemRootsError而无法拿到回包,但是同样的代码在本地却运行正常,纠结好久后终于找到错误原因:由于服务器使用瘦环境,所以没有安装https根证书服务,导致golang无法验证https服务器的身份。 解决这个办法的方法有2个,一个是在服务器中安装https根证书服务(推荐),另一个是关闭golang http包的https安全验证 方法一很简单,一般curl包就包含了根证书,所以直接安装curl即可(ubuntu下通过测试,apline可能不行) 方法二则无需改动服务器环境,但可能面临安全问题。做法是通过传config构建一个自定义的http Client,方法如下: package main import ( "fmt" "net/http"