摘要:
Innodb特性 两次写 两次写是刷新进磁盘的时候,先1MB 1MB的刷新到DoubleWriter里面,再刷新到db磁盘中,这样做的目的是为了保证持久性 插入缓冲 这个特性是对于二次索引而言,并不会一下子把数据插入,而是会等一下,先插入插入缓冲中。插入缓冲的数据结构是B+树 AIO Innodb的 阅读全文
摘要:
Go中的异常 Go异常笼统的分为两种:Panic和Error 一般情况下,我们都要避免去使用Panic,使用Error并输出结果才是我们想要的 装饰器模式处理Error http服务器hanlderFunc 其中要用到一个handler函数,我们觉得不能就暴力的返回系统自身的错误出去,所以进行装饰器 阅读全文
摘要:
玩转TCP 目前已经有了Netty基础,正在学习Go的net包,以此出发进行TCP的学习。 沾包和半包 当不存在任何的处理方式的时候 一份数据可能会超出MSS,那这样可能就会超出我们的一个包的范围,那就会导致半包的出现。 一份数据太小了,所以TCP没想着直接给它传出去,性价比太低,所以和其他的一起传 阅读全文
摘要:
缓冲池 缓存这个东西是在开发当中使用特别多的东西,理解他也特别重要 虽然我们现在工业开发都是使用的第三方的缓存如redis,但是Mysql的缓存也是比较重要的东西。 如果出现了update,redis无法解决要到Mysql里去改,那就可能会命中Mysql的缓存,这个时候就能帮上大忙。 对于这些在缓存 阅读全文
摘要:
反射 反射常用于各种框架类当中,它可以做到十分优雅的帮我们读取值、设置值 Go语言当中感觉很多反射的工具类,比如Java中的hutool,并没有很好的支持 我总结下来反射可以分为两块,一块是TypeOf,一块是ValueOf. TypeOf可以做到获取类型,名字,别名等,ValueOf用来获取值,设 阅读全文
摘要:
Docker的基本使用 Docker的使用个人觉得就是有便捷性和隔离性,它十分便捷的给你布置出了一个你想要的环境,并且多个相同环境的不同版本之间可以做到隔离,就可以无缝切换。 Docker基本使用 docker pull nginx #这一步是从远程仓库中拉取到nginx 现在已经可以在deskto 阅读全文
摘要:
虽然自己有一些docker基础,但一堆东西很难在租的服务器里面部署。所以尝试在win下部署一下docker,也算是打破舒适圈了...提高一下自己的动手能力,感觉做云原生这块离不开docker。 1.下载DockerDesktop https://www.docker.com/products/doc 阅读全文
摘要:
Mysql的内部结构 总览Mysql,真的是干了很多事情。而这些事情肯定是要有线程去做的,那为了提高CPU的利用率,多线程再所难免,Innodb也在一次次的更新中把多线程处理得更加完善。如今的多线程分为以下的情况 Master Thread 其实我甚至可以认为,最早的Innodb肯定是单线程的,那就 阅读全文
摘要:
IO IO应该是在我们的编程中一直存在的一个东西。理解好IO也是重中之重。自己总是忘记了各种IO的定义,在这里给自己提个醒,自己后续也慢慢补充 AIO AIO是一个比较特殊的东西,异步非阻塞IO,用粗暴的话来理解,就是对于每一个IO流的处理,它会分派一个线程去照看,哪个ok了就执行哪个,不必等待不必 阅读全文
摘要:
理解Go的接口 在Go中其实更好理解接口的定义,接口就是对一类结构体的规范,属于这个接口的结构体都实现了一些方法 但是在Go中其实是一种隐式的方法,并没有像Java一样用implement的方法去实现一个接口 只要你实现了一个接口的所有方法,那么你就实现了这个接口,其实某种程度上也是Go多态的体现 阅读全文