随笔分类 -  分布式

摘要:一、共识算法 -- 拜占庭问题 两忠一叛问题: 如上图所示,将军A、B、C约定同时进攻或者撤退,假如将军C叛变了,被中间人截取消息并发送进攻给A、撤退给B,当所有将军消息都收到后结果如下:A:2票进攻1票撤退;B:2票撤退1票进攻;导致最终A独自去攻打敌军,B撤退,最终会任务失败。 口信消息型拜占庭 阅读全文
posted @ 2021-02-17 17:18 HarvardFly 阅读(993) 评论(0) 推荐(0) 编辑
摘要:一、限流的关键作用 对于大型互联网架构中,限流的设计是必不可少的一个环节。在给定的时间内, 客户端请求次数过多, 服务器就会拦截掉部分请求,避免请求流量过大造成数据库负载高的问题。 二、常见限流算法利弊分析 计数器限流 计数器限流主要有固定窗口计数器和滑动窗口计数器。固定窗口计数器即:在单位时间内请 阅读全文
posted @ 2021-01-25 13:14 HarvardFly 编辑
摘要:1. 语言层面的锁 乐观锁: 原子操作中的比较并交换简称CAS(Compare And Swap),在sync/atomic包中,这类原子操作由名称以CompareAndSwap为前缀的若干个函数提供 func CompareAndSwapInt32(addr *int32, old, new in 阅读全文
posted @ 2020-12-14 19:39 HarvardFly 阅读(975) 评论(0) 推荐(1) 编辑
摘要:ETCD整体机制 etcd 是一个分布式的、可靠的 key-value 存储系统,它适用于存储分布式系统中的关键数据。 etcd 集群中多个节点之间通过Raft算法完成分布式一致性协同,算法会选举出一个主节点作为 leader,由 leader 负责数据的同步与分发。当 leader 出现故障后系统 阅读全文
posted @ 2020-11-04 19:13 HarvardFly 阅读(3708) 评论(0) 推荐(0) 编辑
摘要:一、前言 grpc中没有像go-micro那样集成可插拔式的etcd库使用,如何使得grpc能够使用服务注册发现及命名解析的功能,因此本文基于etcd实现了Name Resolver。 二、所需的grpc版本及高版本grpc、protobuf与etcd兼容问题 grpc相关库: google.gol 阅读全文
posted @ 2020-10-09 14:21 HarvardFly 阅读(2611) 评论(0) 推荐(0) 编辑
摘要:一、Opentracing opentracing通过提供平台无关、厂商无关的API,使得开发人员可以方便地实现追踪系统。opentracing提供了用于运营支撑系统和针对特定平台的辅助程序库,被跟踪的服务只需要调用这套接口,就可以被任何实现这套接口的跟踪后台(比如Zipkin, Jaeger等等) 阅读全文
posted @ 2020-09-10 15:14 HarvardFly 阅读(1048) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示