😁
背景 家里正在用了一个华为荣耀路由被我老婆抱怨了多次,终于在我也受不了的情况下,打算把它给换了。于是从闲鱼上花50大洋淘了一个新路由2(newifi d1),之所以选择它,是因为这货性价比很高,网上有很多可以刷的固件,而且到目前为止这个路由器已经上市六年有余,该配置放在当下也不算弱。生产这个路由器的公司谛听科技都垮了,心痛它两秒。 准备 正如上面说了,因为这个路由器的公司经营不善,所以很多官方的刷机贴刷机论坛也是关闭了的,网上能找到 的一些教程比较繁琐,如果对于小白来说还不是那么友好。还有就是很多固件的下载地址已经…
举例 len和cap的关系我们举个恰当的例子来看就是cap比作一个水瓶,len比作这个水瓶中此时所装载水的容量,而当瓶子大小装不下水的时候,也就是这个slice的扩容append我们暂时不讨论。 我们直接先从一道关于slice的题来开始: func main() { var array [20]int fmt.Println(array) slice1 := array[10:11] fmt.Println(slice1) fmt.Println(len(slice1)) fmt.Println(cap(slice…
背景 项目开发时,在某些业务场景我们可能需要控制服务的并发数量,不想引入比较复杂的协程池,只想简单实现。下面我们就可以利用channel特性,几行代码搞定这个需求! 代码实现 package main import ( "fmt" "time" ) var ( sig chan struct{} poolSize = 3 // 用来控制同步并发大小 ) func init() { sig = make(chan struct{}, poolSize) } func simpl…
背景 用户下单,实现订单超时自动取消的机制。 下面也是针对要达到以上目的所要采用了一些常见方案探讨 方案一:定时任务 时序图 步骤 用户下单后,server端将订单数据进行存储; server端会有一个类似死循环的任务,每间隔N秒时间就到DB中进行查询,将状态还处于非终态的订单进行超时判断。 说明 上面这个方案应该算是最简单的一个方案了,间隔时间N根据具体业务场景所需要的情况来,但采用上面的这个方案也是有利有弊的。 优点 方案简单,实现复杂度低; 不用额外引入服务; 缺点 该方案适用于那些小而简单的项目; 如果开启…
from: https://stackoverflow.com/questions/44539789/how-to-convert-number-int-or-float64-to-string-in-golang Q: 我如何将给定的任意int或float64类型的数字转义为string类型?如果使用strconv.FormatFloat或FormatInt的话我需要提前之前它是int或float才行,当我们提前不知道它们类型且不知道float的有效数字长度的情况下怎么格式化? 比如: 当我得到一个数字5,它应该…
背景 最近一个服务引入了etcd,用于主从,编译能够正常通过,但是在run阶段出现如下panic: 2020-12-14 13:36:42.799342 I | WARNING: proto: message authpb.User is already registeredA future release will panic on registration conflicts. See:https://developers.google.com/protocol-buffers/docs/reference/g…
背景 工作中常常会通过ssh登录各个服务器,我们可以直接把这些ssh信息用alias进行重命名,但是始终还是有个问题,就是密码还是得输,如果工作服务器是经过跳板机来跳转的,还得蛋疼的再ssh一下,那我们有没有啥办法能解决这个呢?有!用expect Expect From Wikipedia:Expect是Unix系统中用来进行自动化控制和测试的软件工具,由Don Libes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。该工具利…
背景 使用软件项目开发过程中是离不开开发环境的,而我们的Golang环境更不可能离开golang.org包,但我们在编译或者安装某个包时,常会提示 "golang.org/x/(ooo引用不同包,报的错会不一样)" (https fetch: Get https://golang.org/x/net/(ooo引用不同包,报的错会不一样)?go-get=1: dial tcp 216.239.37.1:443: i/o timeout) 毫无疑问,这是网络问题,这个地址在国内是不能轻易访问而导致下…