暑期实习Golang微服务相关知识点记录(一)

etcd
服务注册和发现,分布式kv存储
包含面向用户的api(grpc)

服务发现
分布式集群中的进程或服务如何找到对方建立连接
本质上来说,就是想要了解集群中是否有进程在监听 udp 或 tcp 端口,并且通过名字就可以查找和连接。

配置中心
将一些配置信息放到 etcd 上进行集中管理。
应用在启动的时候主动从 etcd 获取一次配置信息,同时,在 etcd 节点上注册一个 Watcher 并等待,以后每次配置有更新的时候,etcd 都会实时通知订阅者,以此达到获取最新配置信息的目的。

分布式锁
etcd使用raft强一致性,很容易实现分布式锁
保持独占(一个)和控制时序(多个然后一个)

etcd
天生为集群设置
Raft算法决策时多数节点投票,
常用编程函数方法 Get Watch 2个会话模拟锁竞争

gorm
可加标签gorm:
蛇形列名

gin框架
gin.Context,封装了request和response
Context的Param方法来获取API参数
路由可以拆分注册,就是handler与 get/set等相结合

微服务
通信层 rpc
数据层 etcd

服务注册与发现
客户端,需要实现一套注册中心,记录服务地址,知道具体访问哪个,加权轮询
服务端启动,自动注册即可

RPC相关内容
数据传输:JSON Protobuf
异常容错:健康检测 熔断 限流
服务监控 :日志收集 打点采样

rpc框架
Grpc 跨语言 只支持protobuf

golang写RPC
结构体字段首字母要大写,可以别人调用
函数名必须首字母大写
函数第一参数是接收参数,第二个参数是返回给客户端的参数,必须是指针类型
函数还必须有一个返回值error

protobuf
定义可以嵌套
正常结构
服务端go文件
.proto proto描述文件
.pb.go proto编译后文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值