Liangjf

The darkest hour is that before the dawn.

编码习惯&标准库

1.defer的应用,close文件

编码习惯&标准库[2.从WriteString看io.Writer接口] go1.13.7 /Go/src/io/io.go:289 众所周知,go中是奉行接口实现解耦,继承,多态的银弹。特别是io.Reader,io.Writer这两个接口,是io的基本接口,标准库和第三方基础组件都实现了这两个函数。 type Reader interface {       ...

编码习惯&标准库

1.defer的应用,close文件

编码习惯&标准库[1.defer的应用,close文件] 编码习惯&标准库 是一个系列文章,会不定时更新,主要是记录平时对go的编码,特性,标准库的学习研究。 file, err := os.Open("xxx.txt") defer file.Close() if err != nil { return err } 初学者很多这样写,但是这样会报错 ...

总结&计划

2020总结,2021计划

2020总结,2021计划 2020总结 2020是充满变化的一年,今年换了新环境,压力是有,但更多的是动力,重新焕发出刚毕业时的冲劲。 2020基本完成2019的flag,专业书啃了以下书籍: 语言类: Go语言编程 Go Web编程 Lua程序设计 数据库类: MySQL技术内幕 Innodb存储引擎 MySQL技术内幕:SQL编程 MySQL ...

2019总结

2019年褪去羞涩,走向成熟

2019年褪去羞涩,走向成熟 2019年已经过去99.5%了,算起来,从毕业到现在也2年多了。2年说长不长,说短不短,特别是2019年,对于我个人发展来说,是重要的一年。 在今年换了工作,开发语言变成了Go,虽说一个开发人员不应该被一门语言限定,但是切换一门语言,意味着生态圈是跟着切换的,所以今年的技术栈主要是go+中间件+容器化了。 1、工作 1.1、业务框架 gin bee...

微信监控机器人

🙉微信监控机器人设计

🙉微信监控机器人设计 1、背景 此文是我在公司内部的技术分享,在其基础上稍微做了修改。源码地址 细节决定成败,完善的售后服务机制是在众多产品中脱颖而出的关键因素。面对公司众多的客服群,客服人员可能不足,也或许没有及时留意到客服群的问题反馈,有时可能会造成不良的印象,从而影响到公司品牌。 因此一套自动监控微信客服群的系统会大大提高工作效率,及时发现问题和把问题存档。于是,微信...

池化技术

池化技术

池化技术 池化技术是一个非常常见且实用的技术。 下面以一个案例来展开。初创公司的前期,为了产品快速开发,上线,而且由于用户量前期比较少,因此并发也比较少,这时候会选择最简单的架构,单体单机架构。 这是最简单的项目架构,我们应该非常熟悉。但是随着时间的推移,用户量慢慢上来了,老板,产品和运营等可能会通过策划活动,推广等,用户量就会激增。 这时候慢慢的系统开始请求的响应时间变慢,由一...

etcd

etcd watch机制

etcd watch机制 前言 开源项目源码快速定位 在学习开源项目的时候,最好的选择不是从main函数来入手,这样很很容易迷失在层层调用间,并且跟丢了调用链。最好的方法是按照项目的功能模块来切入,以点破面,正如“星星之火可以燎原”。 规范的主流开源项目,一般是有覆盖率较高的单元测试或者使用demo,在阅读开源项目时,最好是浏览项目的源码目录,找到对应模块的涉及文件,或者借助id...

etcd

etcd3 KV、Lease、Watcher、Auth、Maintenance

etcd3 KV、Lease、Watcher、Auth、Maintenance etcd3.NewKV(client) etcd3.NewLease(client) etcd3.NewWatcher(client) etcd3.NewAuth(client) etcd3.Maintenance(client) KV接口: type KV interface { ...

etcd

etcdv3 client的创建流程

etcdv3 client的创建流程 newClient 1、根据配置项来初始化client 2、NewCluster、NewKV、NewLease、NewWatcher、NewAuth 3、自动同步watch集群列表变更 【go client.autoSync()】 3.1、根据AutoSyncInterval时间间隔来同步一次MemberList 3.2、grpc远程调用,获取...

etcd

etcd与zookeeper

etcd与zookeeper 从以下几个点来说说etcd与zookeeper: 关于cap 逻辑结构 临时节点 事件模型 分布式一致性协议 关于cap 对用户而言,二者都满足强一致性,即满足cap的(cp),无论client访问的是哪个节点,获得的数据视图是最终一致的。但是对于集群,是最终一致性的,因为它们都是满足Quorum机制(大多数同意原则),所以几点的数...