深入理解Go是怎样构建HTTP服务器的 实际上我很早就看过《Go Web编程》这本书,其中的一章很详细地介绍了Go中构建一个最简单的服务器的方法, Go在标准库中为我们提供了一个net/http包,这个包中提供了完善的功能来帮助我们构建一个Web服务器,Go中很多Web框架的底层实际上也是借助了这个标准库来实现自己的功能。 当时看完这本书后,觉得自己已经掌握了相关的知识,但在前两天打算写一个最简单的服务器打包成Docker镜像来进行Ku 2022-05-08 笔记 #Go
Docker 镜像体积优化 在我使用docker对我目前负责的一个项目进行部署时,遇到了这样的一个问题,使用dockerfile构建出的docker镜像的体积太大了。当时我只觉得这是不可避免的,毕竟容器的底层还是运行着一个操作系统,加之Golang的编译环境,再加上项目的代码以及静态资源,最终构建出的镜像体积为1.1G似乎是一件再正常不过的事情。 Version 1 以下是我第一版用于构建docker镜像的dockerfil 2022-03-15 笔记 #Docker #后端
动手实现一个Go的协程池 前言 前几天听学长们回忆面试的经历,其他的内容大多都不记得了,只记得他们提到面试官问了线程池的相关概念,线程池对我来说不算熟悉也不算陌生。 按照我的理解,线程池主要应用在多线程服务器中,是为了解决存在大量请求时,为了使每个请求可以被迅速处理,而为每一个请求创建了一个处理线程,但每个处理请求本身所需要消耗的时间是很短暂的,在处理请求的任务完成后,运行时会销毁线程、进行GC等一系列操作,导致在处理请求 2022-03-04 笔记 #后端 #Go
Redis 分布式锁的实现 前言 本文是阅读《Redis 实战》期间的学习笔记,书中的主要功能使用使用Python进行实现,本文使用Golang对功能进行复现。 Redis为开发者们提供了事务的功能,具体的实现为:以特殊命令MULTI开始,接着输入要执行的多条命令,最后输入特殊命令EXEC标志着事物的结束,同时还需要配合WATCH命令以保持数据的一致性,在WATCH期间,当客户端执行EXEC时,若Redis检测到,有其他 2022-02-10 笔记 #数据库 #Redis
Talent Plan( 路径二)Project 1 Project1的主要内容是实现一个单机的K/V存储引擎,并通过gRPC为上层提供服务,通过RPC调用该存储引擎可以执行Put、Delete、Get、Scan四种操作。存储引擎的底层借助badger作为底层K/V数据库实现。 该项目的任务可划分为以下两个步骤,包括: 实现一个单机的存储引擎。 借助实现的存储引擎,实现K/V服务。 虽然在Project1阶段,涉及的代码量并不多,只要明确工作内容 2022-01-30 笔记 #Go #比赛
记2021 2021年就要过去了,我不想怀念他。 悄悄地,2021也走到了尾声,不过我的2021相比2020过得更加充实,这一年中我也有了更多的收获与感悟。 2021年我的生活中少了一些人,也多了一些人,少了一些事,也多了一些事。这些人和事有让我欣喜的、意外的、惋惜的以及怀念的。但我知道这都是我的生命中不可或缺的,他们成为了我人生中的一部分,也在悄悄地改变着我的人生。 关于今年 与大家的分别 2021年 2022-01-09 日记 #日记
SSH 连接 Hyper-v 中创建的虚拟机 首先新建一个新的虚拟网络交换机,交换机的类型选择内部,因为这个交换机我们只是用来进行SSH连接的。 新建后,可以在控制面板的网络连接面板上,看到你新建出的虚拟网络交换机(实际上是建立了一块虚拟网卡)。 对虚拟网卡的属性进行配置 IP地址和子网掩码这里可以参照图中进行配置,也可以自行修改(前提是你确认自己修改的没问题)。 将虚拟机上新建的虚拟网卡进行配置 进入相应目录 2021-12-28 笔记 #瞎折腾 #网络
MIT 6.824-Lab1 前言 早在保研时,对分布式感兴趣的我想要涉猎一些这个领域的知识,于是在网络上搜寻相关的学习资料,就发现了很多前辈都推荐学习者阅读一下谷歌的三大论文——MapReduce、GFS、BigTable,此外还推荐了一个课程——MIT 6.824,这是一个关于分布式系统的课程,授课的教师是大名鼎鼎的蠕虫病毒的发明者——Robert Morris,听这样的大牛讲课本身就是一种享受,并且在听了两节课之后,觉得 2021-09-24 笔记 #Go #分布式
浅尝Golang反射 0. 前言 对反射的尝试来源于项目中某个CRDU功能的开发,当时我使用Go做一个WEB项目的后端开发,数据库选用的是MongoDB,功能其实也非常的简单,查询数据库某个表中的一条数据,并将得到的数据返回。使用伪代码描述逻辑即为: 1234567891011121314type A struct{ ...}func query_data_A(...) []A { 2021-08-23 笔记 #后端 #Go
打工人在网易 憧憬 由于我明确了研究生毕业后就业的职业发展路线,为了在最终就业时能拿到一份满意的工作,被迫卷了起来,开始早些为自己的未来做打算。从已经就业的朋友口中得知,对于我们这个行业来说,某种程度上实习经历比学历更重要。于是在本科的最后阶段,“找一份实习的工作并在这段工作中取得一定的成果”成为了我本阶段最后的任务吗,也即刷简历。 经过了四次面试后,我选择了网易有道的测开岗位作为自己的第一份工作,选择这个岗 2021-07-30 日记 #日记