摘要:
首先需要导入依赖 go get gopkg.in/amz.v1/aws go get gopkg.in/amz.v1/s3 1. 初始化ceph连接 在初始化连接之前,我们需要创建一个用户得到accessKey和secretKey,新增用户的指令如下: docker exec ceph-rgw ra 阅读全文
摘要:
1. 状态机 从中我们可以得到几个我们需要实现的过程 初始化所有节点为follower 需要一个选举超时定时器,当定时器超时时,一个follower状态转为candidate candidate向其他节点请求投票,得到半数以上票数成为leader candidate发现新的leader或者自己的te 阅读全文
摘要:
1. 创建ceph专用网络 docker network create --driver bridge --subnet 172.20.0.0/16 ceph-network 之后我们使用docker网络相关指令可以看到创建的 ceph-network 相关信息 docker network ins 阅读全文
摘要:
1. Token-based Authentication 在这种验证机制中,用户第一次登录需要POST自己的用户名和密码,在服务器端检验用户名和密码正确之后,就可以签署一个令牌,并将其返回给客户端 在此之后,客户端就可以用这个access_token来访问服务器上的资源,服务器只会验证该令牌是否有 阅读全文
摘要:
1. 路由组 在实际的项目开发中,均是模块化开发 同一模块内的功能接口,往往会有相同的接口前缀,这种可以用路由组来进行分类处理。 比如下面这几组接口: 注册:http: //localhost:8080/user/register 登陆:http: //localhost:8080/user/log 阅读全文
摘要:
1. 实体绑定 以一个用户注册功能来进行表单实体绑定操作 用户注册需要提交表单数据,假设注册时表单数据包含三项: username phone password 我们创建一个UserRegister结构体用于接收表单数据,通过tag标签的方式设置每个字段对应的form表单中的属性名,通过bindin 阅读全文
摘要:
1. hello world 首先拉取gin开发框架 go get -u github.com /gin-gonic/gin 我们从入门的hello world入手看起gin是如何构建一个http服务器的 package main import "github.com/gin-gonic/gin" 阅读全文
摘要:
go在线程的基础上实现了用户态更加轻量级的写成,线程栈为了防止stack overflow,默认大小一般是2MB,而在go中,协程栈在初始化时是2KB go中的栈是可以扩容的,在64位操作系统上最大为1GB 1. newstack()函数 在函数序言阶段如果判断出需要扩容,则会跳转调用运行时more 阅读全文
摘要:
1. Docker底层技术支撑 Linux 命令空间、控制组和UnionFS三大技术支撑了目前Docker的实现: namespace命名空间:容器隔离的基础,保证A容器看不到B容器 cgroups控制组:容器资源统计和隔离 UnionFS联合文件系统:分层镜像实现的基础 实际上Docker使用了很 阅读全文
摘要:
1. 切片的结构 一个切片在运行时由指针、长度和容量三部分构成 指针指向切片元素对应的底层数组元素的地址;长度对应切片中元素的数目,长度不能超过容量;容量一般是从切片的开始位置到底层数组的结尾位置的长度 2. 切片的底层原理 在编译时构建抽象语法树阶段会将切片构建为如下类型: type Slice 阅读全文