随笔分类 -  GOLANG

摘要:我们都知道搞微服务,除了拥有完美生态的java Spring Cloud那套,golang的微服务架构也是非常理想的。而且golang相比java 的臃肿内存占用更小,golang引入了协程并发粒度相比java的多线程先对更小,更可控,并发学习成本更低,不得不说golang就是趋势。 但是相对国内来 阅读全文
posted @ 2020-11-13 11:04 pgman 阅读(398) 评论(0) 推荐(0)
摘要:一、先下载插件grpc_php_plugin: 第一种方式: 通过官方文档编译方式: $ git clone -b v1.33.1 https://github.com/grpc/grpc $ cd grpc && git submodule update --init && make grpc_p 阅读全文
posted @ 2020-11-12 14:07 pgman 阅读(529) 评论(0) 推荐(0)
摘要:先了解下协程概念:协程可以理解为纯用户态的线程,相对于进程与线程,协程的所有操作都可以在用户端完成,创建和切换的消耗更低。相对于线程分时调度与抢占式调度,协程的调度是用户手动切换。调度策略是协作式调度。再理解一下异步IO与协程的关联:程序执行过程中,一部分使用cpu进行逻辑处理,另一部分进行IO传输 阅读全文
posted @ 2020-10-12 17:41 pgman 阅读(658) 评论(0) 推荐(0)
摘要:代码写好部署上线,发现我的服务比其他微服务内存超出很多,并且内存使用增长很快、GC很慢。还好问题发现的快,不然后果就是把整个服务拖垮了。 开始使用pprof 性能分析工具定位。发现heap增量不明显,调试各个接口,看不出问题。但是会出现,GC很慢或者说有些变量没有被GC的现象,就是内存使用之后只GC 阅读全文
posted @ 2020-08-18 11:32 pgman 阅读(978) 评论(0) 推荐(0)
摘要:Linux下chrome 安装 下载地址:https://www.google.com/chrome/?platform=linux 安装: yum install google-chrome-stable_current_x86_64.rpm 查看版本: google-chrome --versi 阅读全文
posted @ 2020-08-18 11:29 pgman 阅读(1723) 评论(0) 推荐(0)
摘要:GOPATH 表示go的工作目录,这个目录指定了需要从哪个地方寻找GO的包、可执行程序等,这个目录可以是多个目录表示, go编译或者运行时会从这个环境变量中去对应查找,可能还不够清晰,工作目录或者如官方文档中说的workspace, 可以这么理解为GO源码目录,在这个目录进行编译、链接最后生成所需要 阅读全文
posted @ 2020-08-18 11:22 pgman 阅读(8052) 评论(0) 推荐(0)