Liangjf

The darkest hour is that before the dawn.

etcd

etcd server启动

etcd server启动 H:/go_home/pkg/mod/github.com/coreos/etcd@v3.3.17+incompatible/etcdmain/main.go:26 1.1 入口 Main() 1.2 启动etcd,直接启动或者通过代理方式启动(把客户端的etcd请求转发到真正的etcd集群) startEtcdO...

etcd

etcd介绍和应用场景

etcd介绍和应用场景 etcd架构 网络层(http(s) server) Raft模块 复制状态机 存储模块 etcd介绍 etcd是和zookeeper“差不多”的分布式的、可靠的键值存储,用于存储分布式系统中最关键的数据。一般是用于配置中心,服务注册发现,分布式锁。 etcd是go语言写的,目前应用于很多流行的开源软件,如: Kubernetes...

etcd

etcd思维导图

etcd思维导图

go pprof

性能分析和瑞士军刀go pprof

性能分析和瑞士军刀go pprof 此文是我在公司内部的每月技术分享,在其基础上稍微做了修改。 go的pprof是针对程序的性能分析的,但在介绍go pprof之前,先来看看不借助go pprof的传统性能分析是如何做的。 什么是性能分析 是什么? 在软件中,性能分析也叫profiling,维基百科的定义是通过收集程序运行时的数据信息并加以分析就是性能分析,是一种动态程序分析的方...

go-mod

go1.13.4 go get报错-mod

go1.13.4 go get报错-mod 执行go get go: flag needs an argument: -mod (from $GOFLAGS) usage: go get [-d] [-t] [-u] [-v] [-insecure] [build flags] [packages]Run 'go help get' for details. go env查看环境设置...

go-micro

go-micro 启动流程分析

go-micro 启动流程分析 实例化一个服务对象 micro.NewService(github.com\micro\go-micro@v1.11.1\service) 实例化各组件(Broker、Cmd 、Client 、Server 、Registry 、Transport),并用自定义的插件替换默认插件 // Option定义为一个方法,接受...

go-micro

go-micro关键点

go-micro关键点 容错 心跳 心跳是在服务发现中刷新注册的机制 设置服务的ttl存活时间和重新注册时间,用于容错,自动移除不可用的注册服务 micro –register_ttl=30 –register_interval=15 api 或者 service := micro.NewService( micro.Name(“com.example.srv.foo...

go cgo

go cgo访问空指针不报段错误,静默越过程序

go cgo访问空指针不报段错误,静默越过程序 demo目录结构: main package main /* #cgo CFLAGS : -I./include #cgo LDFLAGS: -L./lib -ltest #include "test.h" */ import "C" import "fmt" func main() { p := C.hello(C.C...

一次网络交互

客户端和服务端一次网络交互

客户端和服务端一次网络交互 网络交互步骤 客户端进程调用write将消息写到操作系统内核为套接字分配的发送缓冲send buffer。 客户端操作系统内核将发送缓冲的内容发送到网卡,网卡硬件将数据通过「网际路由」送到服务器的网卡。 服务器操作系统内核将网卡的数据放到内核为套接字分配的接收缓冲recv buffer。 服务器进程调用read从接收缓冲中取出消息进行处理。...

aes加密

aes加密原理

aes加密 加密原理 对全量明文根据128bit的大小分块加密。按照选择的填充方式来填充最后一个明文块。每个明文块利用AES加密器和密钥,加密为密文块。拼接所有的密文块,成为最终的密文结果。 加密步骤 AES是经过多轮加密的。如下: 初始轮(Intial Round)  1次 普通轮(Rounds)        n次 最终轮(Final Round)  1次 ...