上一页 1 ··· 74 75 76 77 78 79 80 81 82 ··· 234 下一页

2020年4月2日

go err

摘要: golang自定义err方案很多 // Errno 代表某种错误的类型 type Errno int func (e Errno) Error() string { return "errno " + strconv.Itoa(int(e)) } func main(){ // 示例3。 const 阅读全文

posted @ 2020-04-02 18:27 ExplorerMan 阅读(239) 评论(0) 推荐(0)

golang 做了个mutex与atomic性能测试

摘要: func BenchmarkMutex(b *testing.B) { var number int lock := sync.Mutex{} for i:=0; i< b.N;i++{ go func() { defer lock.Unlock() lock.Lock() number++ }() 阅读全文

posted @ 2020-04-02 18:24 ExplorerMan 阅读(630) 评论(0) 推荐(0)

Go语言中的条件变量

摘要: Go语言sync package提供了条件变量(condition variable)类型: type Cond struct { // L is held while observing or changing the condition L Locker // contains filtered 阅读全文

posted @ 2020-04-02 18:21 ExplorerMan 阅读(253) 评论(0) 推荐(0)

golang 百万级请求

摘要: 我在不同公司从事反爬虫、反病毒、反恶意程序已经有15年了,我知道,由于每天需要处理和应对的大量数据,这些系统最终会因此变得十分复杂。 目前我是smsjunk.com的CEO以及KnowBe4的首席架构师,两家公司都是活跃与网络安全行业。 有趣的是在过去10年作为一名软件工程师,几乎所有我参与的后端开 阅读全文

posted @ 2020-04-02 18:16 ExplorerMan 阅读(591) 评论(0) 推荐(0)

golang strings.NewReader

摘要: 为什么说strings.Reader类型的值可以高效地读取字符串 与strings.Builder类型恰恰相反,strings.Reader类型是为了高效读取字符串而存在的。后者的高效主要体现在它对字符串的读取机制上,它封装了很多用于在string值上读取内容的最佳实践。 strings.Reade 阅读全文

posted @ 2020-04-02 18:07 ExplorerMan 阅读(976) 评论(0) 推荐(0)

golang strings.Builder

摘要: strings.Builder类型的值(以下简称Builder值)的优势有下面的三种: 已存在的内容不可变,但可以拼接更多的内容; 减少了内存分配和内容拷贝的次数; 可将内容重置,可重用值。 先来说说string类型。 我们都知道,在 Go 语言中,string类型的值是不可变的。 如果我们想获得一 阅读全文

posted @ 2020-04-02 18:06 ExplorerMan 阅读(3091) 评论(0) 推荐(0)

go modules 问题 proxy

摘要: 阅读全文

posted @ 2020-04-02 18:03 ExplorerMan 阅读(166) 评论(0) 推荐(0)

Golang 服务优雅重启

摘要: 很多时候对于服务升级的做法简单粗暴, 就简单的杀进程启动新的进程. 还有的好一点就是多个相同的服务依次升级, 保证有服务可用. 但是公平的说这两种都会丢失请求中的连接. 鉴于这种情况, 在现实中我们可以使用优雅重启来搞定这个问题. Golang 实现优雅重启的原理也很简单: 监听 USR2 信号; 阅读全文

posted @ 2020-04-02 18:02 ExplorerMan 阅读(720) 评论(0) 推荐(0)

golang服务开发平滑升级之优雅重启

摘要: 转载不错的文档 经典平滑升级方案 服务器开发运维中,平滑升级是一个老生常谈的话题。拿一个http server来说,最常见的方案就是在http server前面加挂一个lvs负载,通过健康检查接口决定负载的导入与摘除。具体来说就是http server 提供一个/status 接口,服务器返回一个s 阅读全文

posted @ 2020-04-02 18:00 ExplorerMan 阅读(592) 评论(0) 推荐(0)

Golang实现请求限流的几种办法

摘要: 简单的并发控制 利用 channel 的缓冲设定,我们就可以来实现并发的限制。我们只要在执行并发的同时,往一个带有缓冲的 channel 里写入点东西(随便写啥,内容不重要)。让并发的 goroutine在执行完成后把这个 channel 里的东西给读走。这样整个并发的数量就讲控制在这个 chann 阅读全文

posted @ 2020-04-02 17:52 ExplorerMan 阅读(716) 评论(0) 推荐(0)

上一页 1 ··· 74 75 76 77 78 79 80 81 82 ··· 234 下一页

导航