Go配置热更——动态绑定 当我们使用配置中心时,我们希望配置热更。一般的实现方式是,读取配置初始化并增加变更监听。这种方式可以实现,但需要我们维护配置变更逻辑,不友好。 在大多数场景下,我们想要的其实是一个func(),每次调用返回最新的结构化配置。Go 1.18增加了泛型,可以很优雅地解决配置热更问题。 我以nacos为例,写了一个动态绑定库bind_nacos_cfg。 接口如下 12345678// Supplier 2022-11-15 #编程
我折腾过的编程语言 我折腾过的编程语言有 语言 特点 说明 Go 简单,静态编译 最近3年主要工作语言 Java 生态成熟 Go之前主要工作语言,现在偶尔写些业余项目 Clojure 数据即代码,元编程 17年学函数式编程时学的,写过GUI程序和几个Web小项目 Haskell 强类型函数式 17年学函数式编程时学的,主要是开阔眼界 Kotlin 加糖版Java,有协程 写过Demo,无实 2022-11-13 #编程
GoStream实现BufferChan 在上一篇文章中,我实现了Go BufferChan。但BufferChan作为一个独立库,实际使用上并不方便,所以想着把BufferChan整合进GoStream中。 原理是,将上一篇文章的实现原理封闭在在GoStream的BufferChan()中。 2022-01-28 #编程
实现GoChannel缓存——BufferChan channel 是一种消息通信方式,常用于异步通信。 在通信过程中,将多个消息按一定数量或时间间隔缓存起来再批量发送,是一种常见的优化方式。常见的策略是,当消息数达到size或超时timeout未收到消息时触发一次消息。 Go实现如下。 2022-01-27 #编程