摘要: 1.单例模式 package singleton import "sync" //Singleton 是单例模式类 type Singleton struct{} var singleton *Singleton var once sync.Once //GetInstance 用于获取单例模式对象 阅读全文
posted @ 2020-11-17 18:11 Mr.peter 阅读(1007) 评论(0) 推荐(0)
摘要: 在Gin的整个实现中,中间件可谓是Gin的精髓。一个个中间件组成一条中间件链,对HTTP Request请求进行拦截处理,实现了代码的解耦和分离,并且中间件之间相互不用感知到,每个中间件只需要处理自己需要处理的事情即可。 Gin中常用的中间件是: Logger 日志 Recovery panic 处 阅读全文
posted @ 2020-11-17 17:41 Mr.peter 阅读(2294) 评论(0) 推荐(0)
摘要: Golang中如何避免死锁:加锁 读写锁中的可读锁(sync.RWMutex 的 RLock())可以嵌套使用的。 互斥锁(sync.Mutex 和 sync.RWMutex 的 Lock())是不可以互相嵌套的,且不可以与可读锁嵌套。 之前我在读写锁和互斥锁上理解有偏差,认为读写锁与互斥锁是完全独 阅读全文
posted @ 2020-11-17 17:27 Mr.peter 阅读(2951) 评论(0) 推荐(0)
摘要: 微服务模块划分原则: 原则1:传统的一个大业务系统划分微服务模块的时候,尽量是划分到6到8个模块比较合适,当你本身的IT成熟度达到一定水平后你可以划分的更加细点。同时在微服务模块划分的时候一定要考虑数据库本身的划分,即底层的数据库也是划分开的。 原则2:要分析单个业务系统内部的流程,然后分解到具体的 阅读全文
posted @ 2020-11-17 17:00 Mr.peter 阅读(2607) 评论(0) 推荐(0)