- 博客(11)
- 收藏
- 关注
原创 redis golang使用入门
本篇文章和大家分享下golang如何使用redis,包括redis的连接,及redis五种常用数据结构的key-value设定。redis客户端使用依赖包为:github.com/garyburd/redigo/redis一:redis服务端连接及字符串类型数据结构key-value值设定字符串数据结构的key-value设定,通用命令为 set key value [EX seconds]...
2020-04-10 13:56:44
735
原创 golang GC机制
Golang自1.5版本开始引入三色GC,多次改进,GC停顿时间降低到1ms。一:GC的触发GC的触发条件有以下几种:gcTriggerAlways:强制触发GCgcTriggerHeap:当前分配的内存达到一定值就触发GCgcTriggerTime:当一定时间没有执行过GC触发gcTriggerCycle:要求启动新一轮的GC,已启动则跳过,手动触发GC的runtime.GC()会...
2020-03-09 15:59:49
2424
原创 存储管理
动态存储管理动态分区分配中数据结构分为:空闲分区表(起始位置、空闲块大小、使用情况(空闲或使用))和空闲分区链表可利用空间表分为3种不同的形式:链表:系统运行期间,所有用户请求分配存储量大小相同,分配时无需查找,将第一个节点分配给用户,释放时,系统将用户释放的空闲块插入表头。分类若干可利用空间表。将空间分区分区根据容量大小进行分类,对于每一类具有相同容量的所有空闲分区,单独设定一个空闲分...
2020-03-05 14:48:29
337
原创 常见输入(文件及命令行)处理样例代码(go)
一、文件读取1.1 普通文件读取1.2 配置文件读取二、命令行输入1.1 bufio包参数解析1.2 os包参数解析Go的命令行参数存储在切片 os.Args,其中第一个参数为可执行文件的名字,其他的参数都是以字符串的形式,存储在slice os.Args当中,可以通过for range 语句来遍历所有的参数1.3 flag包参数解析os包参数解析只是把命令行中参数存储在os.A...
2020-03-02 23:12:59
721
原创 容器DNS Ip status check模块源码解析(golang)
Ip status check组件对域名domain进行ping探活、及域名的主机ip进行周期性tcp探活,依据探活结果更新etcd中域名对应关系及主机存活状态,包括dns-scheduler和dns-scanner两个模块。文章目录一:dns-scheduler模块1.1 dns-scheduler配置参数说明1.2 SyncJobPath()1.3 WatchJobPath()1.4 i...
2020-02-28 17:39:41
644
原创 etcdV3—watcher服务端源码解析
watcher是客户端用来监听etcd服务端数据变化的功能模块,在客户端指定监听内容后,如果监听数据发生变化,则etcd服务器会通知相应的客户端。watcher存在v2和v3两个版本。两版本watch机制的不同取决于存储机制的不同:v2:版本的存储是基于内存的存储,数据非实时写入磁盘,持久化时数据序列成JSON格式数据写入磁盘。同时内存中以树形结构存储。v3:依赖BoltDB,支持多版本...
2020-02-25 22:50:43
1021
原创 kafka长连接(golang)
kafka sarama提供producer及consumer相关客户端建立及使用,本文主要研究sarama如何保证客户端使用时的长连接。一:NewClient函数主要完成以下工作:根据Config与addrs生成新的client结构体,结构体参数如下:type client struct {conf *Configcloser, closed chan none // for ...
2020-02-24 16:55:22
4028
原创 kafka消费客户端源码解析(golang版)
本文主要对kafka consumer消费客户端具体流程相关sarama及sarama-cluster源码解析。源码获取方式: go get github.com/Shopify/sarama go get github.com/bsm/sarama-cluster主要包括:初始化配置:客户端创建,初始化topic相关partition、partition-leader-broke...
2020-02-23 20:04:56
1695
2
原创 kafka topic-broker-partition关系及优化切入点
一个topic对应多个partition,partition分布在多broker上,多broker一起提供kafka服务。kafka中,Topic是一个存储消息的逻辑概念,可认为为一个消息的集合。物理上,不同Topic的消息分开存储,每个Topic可划分多个partition,同一个Topic下的不同的partition包含不同消息。每个消息被添加至分区时,分配唯一offset,以此保证part...
2020-02-22 11:13:31
10988
原创 gRPC 服务端和客户端源码分析(golang)
第一部分 gRPC介绍gRPC是什么,A high-performance, open-source universal RPC framework。RPC是什么,remote procedure call,远程过程调用,应用程序之间使用RPC通信,函数调用与本地调用无异。gRPC提供一套server/client模型通信机制,其特点如下:使用http2.0作为底层传输协议,支持流式通信,...
2020-02-21 17:54:02
1868
1
原创 gRPC使用样例(golang)
第一部分:grpc使用样例介绍使用grpc编写一个服务分如下三步:编写一个“.proto”文件,在该“.proto”文件中定义相关服务用protoc生成服务端和客户端共享的.pb.go文件实现一个简单的grpc客户端和grpc服务器一:环境准备由“.proto”文件生成.pb.go文件,依赖protoc编译器、protoc编译器go插件及grpc-go第三方库文件安装prot...
2020-02-18 22:13:55
1005
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人