上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 108 下一页
摘要: 分布式系统与微服务架构 阅读全文
posted @ 2022-10-18 17:55 Mr.peter 阅读(40) 评论(0) 推荐(0)
摘要: 分布式系统与架构 阅读全文
posted @ 2022-10-18 17:55 Mr.peter 阅读(15) 评论(0) 推荐(0)
摘要: 不控制goroutine数量引发的问题 Goroutine 体积轻量 优质的GMP调度 ⽆限开辟goroutine :(1)CPU的使⽤率上升 (2)Memory占⽤不断上升 (3)主进程崩溃(被强制杀死) 限制goroutine数量的⽅法 ⽅法一: Channel和WaitGroup的组合⽅式来限 阅读全文
posted @ 2022-10-17 16:56 Mr.peter 阅读(44) 评论(0) 推荐(0)
摘要: 第一种方法,关闭channel。就是借助 channel 的 close 机制来完成对 goroutine 的精确控制。 func main() { ch := make(chan string, 6) go func() { for { v, ok := <-ch if !ok { fmt.Pri 阅读全文
posted @ 2022-10-17 14:51 Mr.peter 阅读(90) 评论(0) 推荐(0)
摘要: Gin Recovery Recovery返回一个中间件,该中间件从任何恐慌中恢复,并写入500(如果有)。当你的程序出现一些你未考虑到的异常时,程序就会退出,服务就停止了,所以这个中间件是有必要的。 gin.Default()返回一个已连接记录器和恢复中间件的引擎实例,即Logger 和 Reco 阅读全文
posted @ 2022-10-17 11:43 Mr.peter 阅读(475) 评论(0) 推荐(0)
摘要: Golang中context包提供上下文机制在 goroutine 之间传递 deadline、取消信号(cancellation signals)或者其他请求相关的信息。 其中context.WithCancel 函数能够从 context.Context 中衍生出一个新的子上下文并返回用于取消该 阅读全文
posted @ 2022-10-17 11:11 Mr.peter 阅读(496) 评论(0) 推荐(0)
摘要: 一、缓存穿透 1、缓存穿透理解 缓存穿透是指查询一个根本不存在的数据,缓存层和持久层都不会命中。在日常工作中出于容错的考虑,如果从持久层查不到数据则不写入缓存层,缓存穿透将导致不存在的数据每次请求都要到持久层去查询,失去了缓存保护后端持久的意义。(对于系统A,假设一秒 5000 个请求,结果其中 4 阅读全文
posted @ 2022-10-17 09:28 Mr.peter 阅读(167) 评论(0) 推荐(0)
摘要: 1. golang那些类型是引用类型,那些类型是值类型? 引用类型: 指针,map,slice,channel,interface 值类型: 非引用类型 Note: 对于interface类型,其原类型是引用类型那interface就也是引用类型,如果其原类型是值类型,那interface就也是值类 阅读全文
posted @ 2022-10-13 15:43 Mr.peter 阅读(992) 评论(0) 推荐(0)
摘要: switch在golang中特殊的处理方式是考虑到大部分开发过程中不太会出现需要继续执行下一条分支的情况,所以默认无需显式的break,但也提供fallthrough让开发者可以显示的继续执行。 阅读全文
posted @ 2022-10-13 15:06 Mr.peter 阅读(72) 评论(0) 推荐(0)
摘要: 1.HTTP的options方法作用 检测服务器所支持的请求方法。(比如:‘/user'路由支持哪些方法:get、post、delete...) CORS中的预检请求(检测某个接口是否支持跨域) 2.allowedMethods方法 响应options方法,告诉它所支持的请求方法 相应的返回405( 阅读全文
posted @ 2022-10-12 09:34 Mr.peter 阅读(258) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 108 下一页