摘要:剖析nsq消息队列(一) 简介及去中心化实现原理 剖析nsq消息队列(二) 去中心化源码解析 剖析nsq消息队列(三) 消息传输的可靠性和持久化[一] 剖析nsq消息队列(三) 消息传输的可靠性和持久化[二]diskqueue 剖析nsq消息队列(四) 消息的负载处理 阅读全文
posted @ 2019-11-15 17:23 li-peng 阅读(1507) 评论(0) 推荐(1) 编辑
摘要:"go微服务框架go micro深度学习(一) 整体架构介绍" "go微服务框架go micro深度学习(二) 入门例子" "go微服务框架go micro深度学习(三) Registry服务的注册和发现" "go微服务框架go micro深度学习(四) rpc方法调用过程详解" "go微服务框架g 阅读全文
posted @ 2019-03-13 11:44 li-peng 阅读(4826) 评论(2) 推荐(2) 编辑
摘要:上一篇帖子 分解uber依赖注入库dig-使用篇 把如何使用dig进行代码示例说明,这篇帖子分析dig的源码,看他是如何实现依赖注入的。 dig实现的中心思想:所有传入Provide的函数必须要有除error外的返回参数,返回参数供其他函数的形参使用。 比如上一篇的第一个例子里,一个函数func() 阅读全文
posted @ 2021-05-08 09:36 li-peng 阅读(1101) 评论(0) 推荐(0) 编辑
摘要:golang的依赖注入库非常的少,好用的更是少之又少,比较好用的目前有两个 谷歌出的wire,这个是用抽象语法树在编译时实现的。 uber出的dig,在运行时,用返射实现的,并基于dig库,写了一个依赖框架fx 本系列分几部分,先对dig进行分析,第一篇介绍dig的使用,第二篇再从源码来剖析他是如何 阅读全文
posted @ 2021-05-06 09:43 li-peng 阅读(697) 评论(0) 推荐(0) 编辑
摘要:在使用pprof分析go的项目时,经常会查看各项指标的有向图 原理是使用Graphviz(Graph Visualization Software)解析生成的dot脚本得到最终展示给我们的图信息。 dot是Graphviz用于画有向图和无向图语言,语法简单。 dot的抽象语法 [ strict ] 阅读全文
posted @ 2021-03-29 09:46 li-peng 阅读(164) 评论(0) 推荐(0) 编辑
摘要:Protocol Buffers 是一种与语言、平台无关,可扩展的序列化结构化数据的方法,常用于通信协议,数据存储等等。相较于 JSON、XML,它更小、更快、更简单,因此也更受开发人员的青眯。 基本语法 syntax = “proto3”; package model; service MySer 阅读全文
posted @ 2020-12-30 13:46 li-peng 阅读(1148) 评论(4) 推荐(2) 编辑
摘要:一直用c++操作`ini`做配置文件,想换成`yaml`,在全球最大的同性交友网站`github`上搜索,看有没有开源的库,功夫不负有心人,找到了[yaml-cpp](https://github.com/jbeder/yaml-cpp),试着解析了一个`yaml`文件,给个满分。分享一下如何使用他 阅读全文
posted @ 2020-12-15 10:33 li-peng 阅读(1873) 评论(0) 推荐(1) 编辑
摘要:k8s的所有功能都是围绕着Pod进行展开的,我们经常会看到类似这样一张图 告诉我们,Pod是一组container的集合,container之间可以通过localhost:port的方式直接访问。 感觉很神奇,明明是不同的container怎么做到共用一个IP的,在随便一个容器内通过localhos 阅读全文
posted @ 2020-10-20 11:58 li-peng 阅读(502) 评论(0) 推荐(0) 编辑
摘要:rust有自己的规则和约定用来组织模块,比如一个包最多可以有一个库crate,任意多个二进制crate、导入文件夹内的模块的两种约定方式... 知道这些约定,就可以快速了解rust的模块系统。 先把一些术语说明一下: 包是cargo的一个功能,当执行cargo new xxxx的时候就是创建了一个包 阅读全文
posted @ 2020-08-31 09:34 li-peng 阅读(2212) 评论(3) 推荐(3) 编辑
摘要:关于go的单元测试,之前有写过一篇帖子go test测试用例那些事,但是没有说go官方的库mock,很有必要单独说一下这个库,和他的实现原理。 mock主要的功能是对接口的模拟,需要在写代码的时候定义抽象很多接口,有时为了能方便go test可能会多写一些冗余代码,但这些工作会让你的单元测试更灵活。 阅读全文
posted @ 2020-07-21 10:01 li-peng 阅读(1086) 评论(0) 推荐(0) 编辑
摘要:tcp服务端和客户端建立连接后会长时间维持这个连接,用于互相传递数据,tcp是以流的方式传输数据的,就像一个水管里的水一样,从一头不断的流向另一头。 理想情况下,发送的数据包都是独立的, 现实要复杂一些,发送方和接收方都有各自的缓冲区。 发送缓冲区:应用不断的把数据发送到缓冲区,系统不断的从缓冲区取 阅读全文
posted @ 2020-06-18 09:38 li-peng 阅读(1239) 评论(1) 推荐(1) 编辑
摘要:能用程序去做的事,就不要用手,编写自己的代码生成器就是用来解放你的双手,替你做一些重复性的工作。 上篇帖子写了模板的基础 go模板详说 ,有了基础就要做点什么东西,把所学到的东西应用起来才能更好的进步。于是用模板写了一个代码生成器,用于把数据库的表转换成go的struct,目前支持MySQL和Pos 阅读全文
posted @ 2020-05-27 12:32 li-peng 阅读(2266) 评论(0) 推荐(0) 编辑