/images/avator.png

xingliuhua

不见其增,日有所长。

go rpc系列2-protobuf

protobuf 语法 Protobuf 是 Protocol Buffers 的简称,是一种与语言、平台无关,可扩展的序列化结构化数据的数据描述语言,Protobuf作为接口规范的描述语言,可以作为设计安

go rpc系列3-grpc

我们用过 rpc 来实现过简单的服务,现在我们改用 gRPC 试试。 安装 在我们的项目根下,在命令行执行 Go 语言的 gRPC 库的安装命令,如下: $ go get -u google.golang.org/grpc@v1.29.1 使用 hello.proto 文件,新增

go select

select使用 select只会执行一次 case语句必须是对channel的操作 case语句不管是接收还是发送,语句表达式都会执行(执行顺序

gitlab cicd

cicd工作原理 gitlab-runner 使用流程 安装gitlab服务器 安装gitlab-runner 注册gitlab-runner,在这个步骤中,我们要知道执行器

唯一id

UUID UUID是由一组32位数的16进制数字所构成,所以UUID理论上的总数为16^32=2^128。 以连字号分为五段,形式为8-4-4-4-1

go内存分配(上)

概述 为了方便自主管理内存,做法便是先向系统申请一块内存,然后将内存切割成小块,通过一定的内存分配算法管理内存。 预申请的内存划分为spans、

go内存分配(下)

栈 栈区的内存一般是由编译器自动进行分配和释放,其中存储着函数的入参及局部变量,这些参数会随着函数的创建而创建,函数的销毁而销毁。 堆 堆区的内存

go绝知—unsafe包

go中指针 先看下go中的指针,go中的指针与c语言中的指针有很大不同: go指针不支持运算 不同类型无法转换 不同类型指针不可比较 我们不难看出,g

docker-compose

配置文件 一份标准配置文件应该包含 version、services、networks 三大部分,其中最关键的就是 services 和 networks 两个部分。 version: '2' services: web: image: dockercloud/hello-world ports: -

树结构

平衡二叉树 平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构。 特点 非叶子节点只能允许最多两个子节点存在。 每一个非叶子节点数据分

golang性能分析

概述 我们要想分析数据,首先需要拿到prof文件或者叫概要文件。 Go 语言为程序开发者们提供了丰富的性能分析 API,和非常好用的标准工具。 这些 API 主

golang zaplog使用

zap zap使用 uber开源,zap可以在控制台、文件甚至发送数据到其他系统中,以此来记录日志。我们可以指定日志的级别,支持json结构化,方便

go值传递

参数值传递 函数传递的总是原来这个东西的一个副本,一副拷贝。比如我们传递一个int类型的参数,传递的其实是这个参数的一个副本;传递一个指针类型

hash一致性

普通hash 假如现在需要向4个redis存取图片,以图片的名字为key,value为图片实际存放的路径,我们可以取到key的hash值,然后

linux

linux主要目录 /bin 放二进制文件,都是可以运行的 /lib 存放系统最基本的动态连接共享库 /dev 放置外接设备,光盘u判断等,外接设备是不能直接使用的,需要

linux io模型

用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核

linux-压缩命令

gzip 压缩单个文件 gzip命令的使用方式很简单,命令后直接跟输入文件即可,gzip命令压缩后默认会覆盖源文件,生成以.gz为后缀的文件。 命令加-

nsq消息队列

nsq消息队列 NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。 Features