flag包是Go语言标准库提供用来解析命令行参数的包,使得开发命令行工具更为简单
常用方法
1.flag.Usage 输出使用方法,如linux下ls -h的帮助输出
2.flag.Type(参数名, 默认值, 使用提示) Type为类型 如String, Int, Uint 调用相应的flag.Sring flag.Int flag.Uint方法
1.flag.Usage 输出使用方法,如linux下ls -h的帮助输出
2.flag.Type(参数名, 默认值, 使用提示) Type为类型 如String, Int, Uint 调用相应的flag.Sring flag.Int flag.Uint方法
thrift 编译器的下载连接 https://thrift.apache.org/download
上述下载的编译器版本要和后续引用的 thrift 头文件的版本对应,比如这里下载的是 0.19.0 版本,后续引用头文件 github.com/apache/thrift 或者 git.apache.org/thrift.git 需要 git checkout 0.19.0
go.mod 中可以手动添加 replace git.apache.org/thrift.git v0.19.0 => github.com/apache/thrift v0.19.0
RPC(Remote Procedure Call),即远程过程调用,是一个分布式系统间通信的必备技术。
RPC 最核心要解决的问题就是在分布式系统间,如何执行另外一个地址空间上的函数、方法,就仿佛在本地调用一样,个人总结的 RPC 最核心的概念和技术包括如下,如图所示:
apt-get install go
go env -w GOPROXY=https://goproxy.cn,direct
go mod init xxx.com/xxx
在 go.mod 中手动添加
replace yyy v0.16.0 => xxx v0.16.0
v0.16.0 是版本号,是否指定看具体情况
将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。
PPP协议处于TCP/IP的数据链路层,主要用在支持全双工的同异步链路上,进行点到点之间的数据传输。
图8-16 PPP在协议栈中的位置
PPP主要由以下几类协议族组成:
RADIUS(Remote Authentication Dial In User Service,远程用户拨号认证)协议是一种分布式的、客户端/服务器结构的信息交互协议,能保护网络不受未授权访问的干扰,常应用在既要求较高安全性、又允许远程用户访问的各种网络环境中。RADIUS协议为标准协议,基本所有主流设备均支持,在实际网络中应用最多。RADIUS使用UDP(User Datagram Protocol,用户数据报协议)作为传输协议,具有良好的实时性;同时也支持重传机制和备用服务器机制,具有较好的可靠性;实现较为简单,适用于大用户量时服务器端的多线程结构。
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。 每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则不能直接互通。这样,广播报文就被限制在一个VLAN内。