摘要: go 很早就考虑了依赖管理的问题,内置 命令,可以直接获取对应的依赖,非常方便,但是有一个巨大的缺陷,没有版本的维护和管理,而版本不一致可能会导致各种兼容性问题,因此出现了很多第三方依赖管理工具, 和 就是其中的佼佼者,到了 go 1.11 官方终于推出了自己的依赖管理工具 ,并内置在 go 版本中 阅读全文
posted @ 2019-11-27 20:49 hatlonely 阅读(981) 评论(0) 推荐(0) 编辑
摘要: golang 原生 http 库已经可以很方便地实现一个 http server 了,但对于复杂的 web 服务来说,路由解析,请求参数解析,对象返回等等,原生 api 就显得有些不太够用了,而 gin 是一个功能完备,性能很高的 web 网络框架,特别适合 web api 的开发 hello wo 阅读全文
posted @ 2019-11-27 20:46 hatlonely 阅读(963) 评论(0) 推荐(0) 编辑
摘要: go 版本的不一致,依赖库不一致,导致编译失败;代码生成工具不一致,导致生成代码有问题;依赖工具缺失,导致测试不通过等等,开发环境和生产环境之间的差异会导致各种各样奇怪的问题,而 docker 特别擅长解决这种一致性问题 总体方案 最简单粗暴的一种方式就是每次都将代码拷贝到一个新的容器内,执行编译, 阅读全文
posted @ 2019-11-27 20:35 hatlonely 阅读(1536) 评论(0) 推荐(0) 编辑
摘要: nginx 是一个开源的高性能 web 服务器(可能是性能最好的),使用非常广泛,既可以用来部署静态资源,也可以用来作为反向代理,甚至可以作为负载均衡服务器。 安装和启动 配置文件 默认的配置文件在 ,这个文件是配置文件的入口,一般配置一些全局信息 这个配置文件里面一般会有一句 ,包含各个子服务的配 阅读全文
posted @ 2019-11-27 20:32 hatlonely 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 最近遇到 grpc 客户端报错 ,原因是连接长时间没有使用,被服务端断开,这种情况通过简单粗暴的重试策略可以解决,更加优雅的解决方案是增加保持连接策略 服务端 客户端 链接 服务端代码: 客户端代码: 转载请注明出处 本文链接: 阅读全文
posted @ 2019-11-27 20:27 hatlonely 阅读(1977) 评论(0) 推荐(0) 编辑
摘要: 用了那么多年 c++,今天才搞明白 cmake 该怎么用…… cmake 是一个跨平台的 c++ 构建工具,与 makefile 类似,但是 makefile 更关注依赖,cmake 更关注构建本身,所以语法上要比makefile 要简洁清晰一些,而最近发现 cmake 原来还自带了依赖管理的功能, 阅读全文
posted @ 2018-05-31 12:03 hatlonely 阅读(4399) 评论(0) 推荐(0) 编辑
摘要: logrotate 是操作系统用来管理日志的工具,支持日志的切割、压缩、清理以及邮件报警等,通过 crontab 服务定时运行,也可以用这个工具来管理我们自己的服务日志,只需要简单配置下配置文件即可 logrotate 配置 ,多份日志可以直接写在一个配置文件里面,也可以分成多个文件 进来 : 日志 阅读全文
posted @ 2018-04-16 15:46 hatlonely 阅读(277) 评论(0) 推荐(0) 编辑
摘要: mysql 作为成熟稳定的数据持久化解决方案,广泛地应用在各种领域,但是在数据分析方面稍有不足,而 elasticsearch 作为数据分析领域的佼佼者,刚好可以弥补这项不足,而我们要做的只需要将 mysql 中的数据同步到 elasticsearch 中即可,而 logstash 刚好就可以支持, 阅读全文
posted @ 2018-04-14 23:19 hatlonely 阅读(289) 评论(0) 推荐(0) 编辑
摘要: elk 提供了完备且成熟的日志存储和分析的解决方案,免费开源,本文主要介绍 elasticsearch 集群以及 kibana 的环境搭建 elasticsearch elasticsearch 可以理解为一个支持模糊查询的数据库,用来存储日志 下载 elasticsearch 修改配置文件 修改 阅读全文
posted @ 2018-04-13 00:46 hatlonely 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 很多时候性能问题总是发生在一些不起眼的地方。最近做一个性能问题分析的时候发现,一个函数里面使用由于字符串拼接产生的临时字符串导致内存上涨了40%(120G 内存的机器),而这些临时字符串给 GC 也带来了非常大的负担,成为主要的性能瓶颈,而这些字符串作为 map 的 key,又必须要拼接,所以想到了 阅读全文
posted @ 2018-04-12 18:48 hatlonely 阅读(208) 评论(0) 推荐(0) 编辑