Go语言学习——基于GRPC和ETCD实现服务注册、发现与负载均衡

1.简介<br /> &emsp;&emsp;最近在做服务拆分,目标就是先抽出一个流量解析模块,主要是负责流量的接入、协议的转化,将所有媒体请求都以统一接口访问后续服务,因为时间紧迫,服务间访问、负载均衡采用的是比较传统的处理方案——新服务通过内网LB访问后续服务,该种方案的最大问题就是在原有上、下层服务之间又加了一层,即数据链路又增加了一环,增加性能开销;后来利用周末时间,研究了软负载策略(又称客户端负载策略 ),该方案的特点就是将LB放在服务消费方,服务消费方通过LB组件获知可以提供服务的...阅读全文

2020-07-19 16:42:29

Go语言学习——深入学习一致性算法Raft

1.简介<br /> &nbsp;&nbsp;&nbsp;&nbsp;了解分布式的同学都知道,在分布式理论中有个CAP定理,CAP代表分布式系统的三个要素:一致性(C)、可用性(A)、分区容错性(P),本文要介绍的Raft算法,它就是实现日志复制一致性的算法;之前用ETCD做服务注册、发现时,有接触过一点Raft,但是,了解的不够深入,正好前段时间休了个长假,就研读论文、结合网上资料,按照自己的理解、重新整理如下,如有不当或者疑问之处,还请各位大佬留言、多多指点。<br /> 1.1由来...阅读全文

2020-08-27 12:11:15

Go 基于原生库驱动 driver 输出 SQL 日志/ 监控 / 链路追踪方案(上)

# Go 基于原生库驱动 driver 输出 SQL 日志/ 监控 / 链路追踪方案(上) ![black.png](https://static.studygolang.com/211116/345fe9981950a4fba43d0dd2bc76b0c5.png) 笔者曾经分享过两篇文章,分别是基于 GORM V2 和 XORM 在分布式链路追踪上的建设,此后偶尔有网友联系笔者进行交流,问题主要基于项目使用 GORM V1 或者原生 SQL情况下,尽可能少侵入业务代码去做数据...阅读全文

2021-11-16 23:26:53