grpc入门使用

google开发并开源的一款高性能、开源、通用的rpc框架 特点 支持多种语言 基于IDL文件定义服务,通过proto3工具生成指定语言的数据结构、服务端接口以及客户端stub 基于HTTP/2设计,支持双向流、消息头压缩、单TCP的多路复用、服务端推送等特性 序列化支持PB(语言无关的高……

阅读全文

RPC学习笔记

全称是 Remote Procedure Call,即远程过程调用。简单点理解就是像调用本地一样调用远程方法。 远程调用需要保证业务可靠性,所以RPC一般使用TCP进行传输。 RPC是解决应用间通信的一种方式,经常在微服务中使用。还在MQ、数据库等场景中有使用 RPC协议 RPC请求,需要把请求参数序列化成二进制后,写……

阅读全文

Slice提前分配内存

golang的slice不仅有长度,还有容量的概念。在append的时候,slice如果扩容,内存会重新分配。频繁重新分配内存是有消耗的,通常情况下,可以直接使用make([]byte, 0, len(list))的方式提前分配内存。 但是一些特定的业务场景,需要对多个slice进行拼接……

阅读全文

新系统

安装Chrome Google Chrome 网络浏览器 安装lemon https://lemon.qq.com/ 安装sizeup https://www.irradiatedsoftware.com/sizeup/ 安装alfred https://www.alfredapp.com/ 在Features中设置Clipboard History 安装Enpass https://www.enpass.io/downloads/ 安装Iterm2 https://iterm2.com 安装vscode https://code.visualstudio.com/Download 安装typora Typora 官方中文站 安装sublime https://sublimetextcn.com/3/ 安装oh-my-zsh主题 sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)" git clone https://github.com/valentinocossar/vscode.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/vscode git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions……

阅读全文

go语言切片扩容

切片的容量 切片是基于数组实现的一个特殊的数据结构,有三个属性,指向底层数组的指针、长度(len)和容量(cap)。 长度指的就是切片里元素实际的个数,容量是指针指向数组的长度。 初始化时切片的长度与容量 // 默认len=cap,均为4 arr := make([]int, 4) // 分别制定len和cap,len为1,cap为……

阅读全文