工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理.在前几篇文章介绍完了Consul用到的两个关键性东西Raft和Gossip之后,这篇文章会讲述Consul的整体架构.本文基于一篇别的译文,并做了一些改进和完善. 术语表 代理(agent): 代理是Consul集群上每个成员的守护进程,它是由consul agent开始运行.代理能够以客户端或服务器模式运行.由于所有节点都必须运行代理,所以将节点引用为客户端或服务器更为简单,但还有其他实例的代理…
工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理.这篇文章会讲述Consul是如何使用Gossip来做集群成员管理和消息广播的. Consul使用Gossip协议来管理集群中的成员关系,以及把消息广播到集群中.而这些Gossip的特性是利用Serf这个lib来实现的. 下面,我们先来看看什么是Gossip协议. Gossip协议 在学习Gossip的过程中,我找到了一篇介绍Gossip的很不错的文章,下面是那篇文章的主要内容: ( 以下转载自ht…
工作中用到了Consul来做服务发现,之后一段时间里,我会陆续发一些文章来讲述Consul实现原理.在前一篇文章中,我介绍了Raft算法.这篇文章会讲讲Consul是如何使用Raft算法来实现分布式一致性的. Consul中的Raft 只有以server模式运行的Consul节点,才会被认为是Raft节点集的一部分.所有的client节点会把收到的请求转发到server节点中.这么设计的原因主要是出于性能方面的考虑:节点集中的个数越多,那么法定个数的值也就越大,这会导致leader节点可能需要等…
转自:http://blog.csdn.net/jaytalent?viewmode=contents MapReduce调度与执行原理系列文章 一.MapReduce调度与执行原理之作业提交 二.MapReduce调度与执行原理之作业初始化 三.MapReduce调度与执行原理之任务调度 四.MapReduce调度与执行原理之任务调度(续) 前言:本文旨在理清在Hadoop中一个MapReduce作业(Job)在提交到框架后的整个生命周期过程,权作总结和日后参考,如有问题,请不吝赐教.本文不涉…
FastDFS原理系列文章 基于FastDFS 5.03/5.04 2014-12-19 一.概述 FastDFS文档极少,仅仅能找到一些宽泛的架构文档,以及ChinaUnix论坛上作者对网友提问的一些回答.对于要将FastDFS应用到生产系统来说,这点了解绝对是不够的. 这段时间研究FastDFS源代码,而且做了大量的性能測试.中间也做了大量的笔记.基本上把程序的结构与基本的操作摸索清楚,因此写了一些文章即是对前段工作的总结,同一时候也分享给想很多其它了解FastDFS内部的同行们. 这里对每…
RocketMQ架构原理解析(一):整体架构 RocketMQ架构原理解析(二):消息存储(CommitLog) RocketMQ架构原理解析(三):消息索引(ConsumeQueue & IndexFile) RocketMQ架构原理解析(四):消息生产端(Producer) 一.概述 RocketMQ作为一个apache的顶级项目,拥有将近16K的star,它稳定的系统及强悍的性能,无疑在国内已经成为了企业消息队列的首选.接下来的一段时间,鄙人准备出一系列文章,从源码出发,逐一剖析Rocke…
如果是开发微服务的项目,多个服务的配置管理起来比较麻烦,需要集中管理,也就是需要有配置中心: consul集成配置中心的思路:读取配置文件时不在从本地的应用中读取,而是从consul的KEY/value中读取 集成步骤: 1.首先,安装Consul,具体安装步骤本文就不详细介绍了,请移步我的系列文章01,当打开 http://127.0.0.1:8500 可以看到Consul的UI界面代表安装成功. 2.安装NuGet包:Winton.Extensions.Configuration.Consu…
0 专辑概述 etcd 是云原生架构中重要的基础组件,由 CNCF 孵化托管.etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册与发现,还可以作为 key-value 存储的中间件. <彻底搞懂 etcd 系列文章>将会从 etcd 的基本功能实践.API 接口.实现原理.源码分析,以及实现中的踩坑经验等几方面具体展开介绍 etcd.预计会有 20 篇左右的文章,笔者将会每周持续更新,欢迎关注. 1 etcd 集群部署 在生产环境中,为了整个集群的高可用,etcd 正常都会…
0 专辑概述 etcd 是云原生架构中重要的基础组件,由 CNCF 孵化托管.etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册与发现,还可以作为 key-value 存储的中间件. <彻底搞懂 etcd 系列文章>将会从 etcd 的基本功能实践.API 接口.实现原理.源码分析,以及实现中的踩坑经验等几方面具体展开介绍 etcd.预计会有 20 篇左右的文章,笔者将会每周持续更新,欢迎关注. 1 etcd 安装与使用 在上一篇主要介绍了 etcd 的相关概念和使用场景,…