- 博客(17)
- 收藏
- 关注
转载 Go之net/http/server.go中Handler、ServeMux、Server阅读笔记
1. Handler是什么?AHandlerrespondstoanHTTPrequest. 这是源码中的注释,说的就是:一个Handler响应一个HTTP请求。Handler的定义type Handler interface{ ServerHTTP(ResponseWriter, *Request)}2. ...
2019-09-25 14:41:00 283
转载 CDN业务架构思考
CDN分多种业务:包括图片小文件、大文件下载、音视频点播、直播流媒体、全站加速等;每种业务对应多个平台(划分平台是为了方便对机器资源进行管理,对带宽资源进行管理);平台是逻辑概念,一个平台内包含N个节点(平台可以复用节点);节点是逻辑概念,只能属于某一个机房,且包含多台服务器(节点可以复用机器);转载于:https://www.cnblogs.com/zcqkk...
2019-09-19 18:06:00 154
转载 服务上云
云公司——提供云平台,面向应用公司;应用公司——提供应用服务,直接面上用户。云公司——提供基础平台(服务器、磁盘、带宽、网络等),以及服务部署、扩展、监控等,以及一些通用等服务(例如短信服务)。应用公司——则无需在关心机房、服务器等物理设施,这些全部交给云公司。只需关注自己的应用服务,开发服务、部署到云平台上。云公司让应用公司更专注、更轻量、更聚焦。...
2019-09-12 17:43:00 326
转载 mongo-go-driver详细使用示例
package mainimport ( "context" "log" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "go....
2019-07-23 20:24:00 1576
转载 增加缓存优化消息队列在特定情况下读取性能下降的问题
写者持续的写入数据到磁盘上,读者1实时读区写者最新保存的数据,读取数据的时候一般都会在page_cache中找到,不用从磁盘获取。但是如果有另外一个读者要读区很早的数据,应为较早的数据在page_cache中已经不存在,所以系统在从磁盘获取到数据后,回把数据保存到page_cache中,以方便后续读取该数据到请求直接从cache中获取减少磁盘IO。但是这样会导致写着新保存到pag...
2019-05-30 14:38:00 183
转载 写磁盘与缓存的两种方式
wirte-back: 数据线写入缓存,稍后再被刷入磁盘;write-through: 数据被立即写入磁盘,另外也会在缓存保存一份(用来提升读性能)。备注:图中的cache缓存的不是文件而是块(block),块是磁盘I/O最小的单元,Linux下块大小通常是1KB。优点:write-back:磁盘写性能高write-through: 数据安全...
2019-05-30 12:10:00 356
转载 MongoError: The dotted field .. is not valid for storage
Mongodb3.6版本前,文档中有{key:value}结构,且key中包含了“.”,在写数据库的时候就会报这个错误,这是页因为MongoDB对字段名字做了限制,这个问题在3.6及以后版本被修复了。在3.2.22版本上尝试,当插入带key中带"."时就会报错。在4.0.4版本上验证没有问题参考:https://stackoverflow.c...
2019-04-16 16:52:00 1030
转载 TCP Fast Open
客户端与服务端通过常规端三次握手建立链接,不过这里在服务队回复SYN/ACK时携带了根据客户端IP和服务端密钥生成的cookie信息。客户端收到cookie信息转载于:https://www.cnblogs.com/zcqkk/p/10712505.html...
2019-04-15 19:22:00 127
转载 golang获取本地dns服务器
使用"github.com/miekg/dns"库可以解析/etc/resolv.conf,从而获取dns服务器参考代码:https://github.com/deepFoc/go-code/blob/master/localdns/main.go转载于:https://www.cnblogs.com/zcqkk/p/10621037.html...
2019-03-29 14:27:00 1090
转载 Go语言HTTP请求头小写问题
开发过程中对接其他团队接口,请求接口中增加了几个自定义头部,都是小写开头。使用go编写客户端进行请求,无论如何怎么测试都失败。可是使用curl,轻轻松松正常返回。无奈只能使用撒手锏,打印了一下请求头,想和curl对比下,发现请求头里的自定义头都变成了大写开头了。这是怎么回事呢?查看源代码,发现原来代码里做了首字母转大写的处理。我当场差点哭了!!!由于header是一个map所以...
2019-02-25 15:39:00 971
转载 MAC上使用nginx搭建直播服务器
第一步:安装nginx-full安装brew tap homebrew/nginxError: homebrew/nginx was deprecated. This tap is now empty as all its formulae were migrated.报错原因是homebrew/nginx被弃用了,git路径变了。改用brew tap ...
2019-02-12 10:19:00 134
转载 go packages 学习
$ go help packagesMany commands apply to a set of packages:许多命令适用于一组包:go action [packages]Usually, [packages] is a list of import paths.通常,[packages] 是导入路径的列表。An impor...
2018-12-04 19:54:00 199
转载 Cloud Native Computing Foundation
CNCFhttps://www.cncf.io/CNCF云原生全景图谱(局部)转载于:https://www.cnblogs.com/zcqkk/p/9848182.html
2018-10-25 10:26:00 161
转载 普通文件I/O需要两次复制,内存映射文件mmap一次复制
普通文件I/O第一次复制:disk->page cache,从磁盘到页缓存(外存到主存)第二次复制:page cache->process heap,从页缓存到进程堆空间(即内核态到用户态)内存映射文件mmapdisk->page cache,从磁盘到页缓存(外存到主存)参考:https://blog.csdn.net/iter_zc...
2018-10-24 17:22:00 302
转载 page cache & buffer cache
What is the major difference between the buffer cache and the page cache? Why were they separate entities in older kernels? Why were they merged later on?表述page cache与buffer cache的区别:The pa...
2018-10-24 16:22:00 128
转载 堆排序之golang实现扩展版本
堆排序不仅仅可以对整形数组进行排序,扩展一下思维,也可以对结构体数组进行排序。这里就可以用到interface和闭包了。golang给我们提供了很大的遍历。针对每种数据结构体,可以定制闭包,例如:使用按个成员进行比较。package mainimport ( "fmt")func adjustHeap(a []interface{}, pos i...
2018-09-14 11:02:00 101
转载 堆排序之golang实现
主要是理解思路,思路有了代码则是水到渠成。堆排序实际是数组排序,使用数组的下标构造成一个二叉树,想法很有意思。加入有数组a,那可以把a[0]视为根节点,它的子节点为a[2*0+1],a[2*0+2],即对于任何一个节点a[i],则有子节点a[2*i+1]和a[2*i+2]。1. 构建一个大顶堆,构建成功后a[0]便是最大的。2. 之后交换a[0]和a[len(a)-1]...
2018-09-12 17:52:00 103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人