摘要: 背景 程序的监控一直是程序员最头痛的事情之一,现网程序有问题怎么办?看进程看端口 top/free/df 三件套?网络抓包?看日志?所以为了满足这些初级需求很多公司都做了主机监控,进程端口监听等功能,例如主机磁盘满/只读告警,端口不监听告警。这些基础的监控说到底都是黑盒监控,并没有进入到程序内部的调 阅读全文
posted @ 2020-09-06 17:07 我是码客 阅读(2622) 评论(2) 推荐(0) 编辑
摘要: 现在基本上大数据的场景中都会有kafka的身影,那么为什么这些场景下要用kafka而不用其他传统的消息队列呢?例如rabbitmq。主要的原因是因为kafka天然的百万级TPS,以及它对接其他大数据组件的流处理功能,比如可以更好的对接Apache storm。本文只是讨论kafka作为消息队列的功能 阅读全文
posted @ 2020-08-12 14:55 我是码客 阅读(1808) 评论(1) 推荐(1) 编辑
摘要: 背景 在之前的文章《漫谈微服务》我已经简单的介绍过微服务,微服务特性是轻量级跨平台和跨语言的服务,也列举了比较了集中微服务通信的手段的利弊,本文将通过RPC通信的方式实现一个增删查Redis的轻量级微服务示例,大部分内容翻译自文章《Microservice in golang, using Redi 阅读全文
posted @ 2019-12-22 21:17 我是码客 阅读(4424) 评论(0) 推荐(1) 编辑
摘要: 简介 JSON 作为通用的前后端交互,或者后台服务间通信的通用格式被大家广泛使用。我们肯定遇到过一些场景需要校验调用方传递过来的数据格式,比如一定要包含某些字段,某个字段一定要符合某种格式,比如定义了价格的字段,范围一定要在100~200之间,协议字段一定要是TCP或者UDP等枚举类型。你是否在你的 阅读全文
posted @ 2019-11-09 23:03 我是码客 阅读(11642) 评论(0) 推荐(0) 编辑
摘要: 前言 Golang的slice类型为连续同类型数据提供了一个方便并且高效的实现方式。slice的实现是基于array,slice和map一样是类似于指针语义,传递slice和map并不涉及底层数据结构的拷贝,相当于传递底层数据结构的指针。 Arrays数组 数组类型的定义需要指定长度和元素的类型。例 阅读全文
posted @ 2019-08-08 20:38 我是码客 阅读(5780) 评论(0) 推荐(0) 编辑
摘要: 前言 我博客之前的Golang高效实践系列博客中已经系统的介绍了Golang的一些高效实践建议,例如:《Golang高效实践之interface、reflection、json实践》、《Golang 高效实践之defer、panic、recover实践》、《Golang 高效实践之并发实践conte 阅读全文
posted @ 2019-07-29 16:56 我是码客 阅读(747) 评论(0) 推荐(1) 编辑
摘要: 前言 反射是程序校验自己数据结构和类型的一种机制。文章尝试解释Golang的反射机制工作原理,每种编程语言的反射模型都是不同的,有很多语言甚至都不支持反射。 Interface 在将反射之前需要先介绍下接口interface,因为Golang的反射实现是基于interface的。Golang是静态类 阅读全文
posted @ 2019-07-26 13:35 我是码客 阅读(3767) 评论(0) 推荐(1) 编辑
摘要: 前言 我们知道Golang处理异常是用error返回的方式,然后调用方根据error的值走不同的处理逻辑。但是,如果程序触发其他的严重异常,比如说数组越界,程序就要直接崩溃。Golang有没有一种异常捕获和恢复机制呢?这个就是本文要讲的panic和recover。其中recover要配合defer使 阅读全文
posted @ 2019-07-22 16:59 我是码客 阅读(31527) 评论(0) 推荐(2) 编辑
摘要: 前言 在上篇Golang高效实践之并发实践channel篇中我给大家介绍了Golang并发模型,详细的介绍了channel的用法,和用select管理channel。比如说我们可以用channel来控制几个goroutine的同步和退出时机,但是我们需要close channel通知其他接受者,当通 阅读全文
posted @ 2019-07-19 20:13 我是码客 阅读(2448) 评论(0) 推荐(0) 编辑
摘要: 前言 在我前面一篇文章Golang受欢迎的原因中已经提到,Golang是在语言层面(runtime)就支持了并发模型。那么作为编程人员,我们在实践Golang的并发编程时,又有什么需要注意的点呢?下面我会跟大家详细的介绍一些在实际生产编程中很容易踩坑的知识点。 CSP 在介绍Golang的并发实践前 阅读全文
posted @ 2019-07-18 10:42 我是码客 阅读(8616) 评论(1) 推荐(0) 编辑