自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 prometheus+grafana 搭建监控报警系统

1、prometheus是什么2、本地下载安装prometheus2.1 去prometheus官网查找prometheus的最新包地址2.2 安装> cd ~> mkdirpackages> cdpackages>wget https://github.com/prometheus/prometheus/releases/download/v2.33.0-rc.0/prometheus-2.33.0-rc.0.linux-amd64.ta...

2022-01-21 17:52:33 994

原创 go chanel

1、发送数据1.1 直接发送数据直接发送数据是指 如果已经有阻塞的接收goroutines,那么数据将被直接发送给接收goroutine1.2 缓冲区有可用空间1.3 缓冲区无可用空间,goroutine要么直接返回要么阻塞等待2、接收数据2.1 直接接收数据2.1.1 没有缓冲区,直接从阻塞的goroutine接收数据2.1.2有缓冲区,则从缓冲区接收数据,如果有阻塞的goroutine则唤醒2.2 缓冲区没有数据,goroutine要么直接返回要么阻塞等待2.3缓冲区有.

2022-01-19 18:12:01 376

原创 浅谈 go netpoll

1.先谈epollhttps://zhuanlan.zhihu.com/p/647465091.1 epoll定义是I/O多路复用的一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪,就是这个文件描述符进行读写操作之前),能够通知程序进行相应的读写操作。Level_triggered(水平触发):当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据一次性全部读写完(如读写缓冲区太小),那么下次调用 epoll_wai

2020-06-04 11:48:01 540

原创 对操作系统虚拟内存机制的理解

1.如果把二进制程序全部加载到内存中,会出现一种情况就是明明内存还有空间,但是不够二进制程序的大小,所以也加载不了,这样很浪费内存,而且会产生外部碎片。所以就改良成2中描述的方案。2.采用页表的方式对内存进行管理。分页将物理内存和可执行程序划分成很小的区块,这个区块定义为页,每个页的大小为4k,二进制程序中不足4k的页默认为4k。操作系统会为每个进程维护一个页表。页表主要记录进程的页号与内存中的页号的对应关系。这样的话就没有要求二进制程序加载到物理内存中必须是连续的,不会产生外部碎片,但是因为二进制程序

2020-05-20 23:36:06 225

原创 golang html 源码阅读

有时间再记录自己对go原生库html源码的解读,先开一篇文章,以免自己忘记

2020-04-30 13:33:33 117

原创 go net/http 源码阅读

有时间再记录自己对go原生库net/http 源码的解读,先开一篇文章,以免自己忘记

2020-04-30 13:31:58 142

原创 进程切换和线程切换

有时间再记录自己对进程切换和线程切换的理解,先开一篇文章,以免自己忘记。

2020-04-29 09:12:08 130

原创 gin框架源码解读

有时间再记录自己读gin框架源码的过程,先开一篇文章,以免自己忘记。

2020-04-29 09:11:18 359

原创 gock:mock http 请求的实现原理及使用

原理: 其实 gock 主要是是改变了requestClient的Transport。gock 定义了一个新的Transport 替换了requestClient的 Transport (http.DefaultTransport),新的Transport 结构体重写了RoundTrip 方法,主要是在这个方法对 http request 进行拦截,去匹配 m...

2020-04-29 09:08:31 1053

原创 golang NewTimer/NewTicker 源码阅读

1.引出 src/runtime/time.go 中的 startTimerNewTimer 和 NewTicker 分别在 src/time/sleep.go、src/time/tick.go 这两个文件下。这两个函数最主要的区别是NewTimer在初始化runtimeTimer的时候没有初始化period属性。不管是 NewTimer 还是 NewTicker 最终的实现都是调用 sta...

2020-04-29 08:57:55 350

原创 ln 在实际工作中的应用

我们有两个gitlab仓库,每次我更新一份文档都需要往这两个gitlab仓库上传。 一开始我试着用其中一个gitlab仓库下(暂且命名为gitlab1)的这份文档做源文件,另外一个gitlab仓库(暂且命名为gitlab2)的文档则ln -s为目标文件,但是发现上传到gitlab2仓库的也是一个链接文件(如下图),我不知道这样会不会出错。 ...

2019-02-23 14:01:03 430

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除