分布式处理

分布式一致性算法Paxos

不问归期 提交于 2019-11-26 05:26:53
  Paxos是一种基于消息传递的分布式一致性算法,由Leslie Lamport(莱斯利·兰伯特)于1990提出。是目前公认的解决分布式一致性问题的最有效算法之一。 要解决的问题及应用场景   Paxos算法要解决的问题,可以理解为:一个异步通信的分布式系统中,如何就某一个值(决议)达成一致。   而此处异步通信是指,消息在网络传输过程中存在丢失、超时、乱序现象。   其典型应用场景为:   在一个分布式系统中,如果各节点初始状态一致,而且每个节点执行相同的命令序列,那么最后就可以得到一个一致的状态。为了保证每个节点执行相同的命令序列,即需要在每一条指令上执行一致性算法(如Paxos算法),来保证每个节点指令一致。 概念定义   Proposal:为了就某一个值达成一致而发起的提案,包括提案编号和提案的值。   涉及角色如下:   Proposer:提案发起者,为了就某一个值达成一致,Proposer可以以任意速度、发起任意数量的提案,可以停止或重启。   Acceptor:提案批准者,负责处理接收到的提案,响应、作出承诺、或批准提案。   Learner:提案学习者,可以从Acceptor处获取已被批准的提案。 约定   Paxos需要遵循如下约定:   1、一个Acceptor必须批准它收到的第一个提案。   2、如果编号为n的提案被批准了,那么所有编号大于n的提案

TIDB 架构及分布式协议Paxos和Raft对比

自古美人都是妖i 提交于 2019-11-26 05:22:12
近来newsql大热,尤以TIDB最火,pingcap不断打磨TiDB,现如今版本已经迭代到3.0,产品已经基本趋于成熟。 对于TiDB,整体架构图如下图所示 是由四个模块组成,TiDB Server,PD Server,TiKV Server,TiSpark。 TiDB Server 负责接受SQL请求,处理SQL的相关逻辑,并通过PD找到存储计算所需数据的TiKV地址,与TiKV交互获取数据,最终返回结果。TiDB Server是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVD,HAPROXY,F5等)对外提供统一的接入地址。推荐部署俩个实例,前端通过负载均衡组件对外提供服务,当单个实例失效时,会影响正在这个实例上进行的session,从应用的角度看,会出现单次请求失败的情况,重新连接后即可继续获得服务。 Placement Driver (简称 PD),是整个集群的管理模块,其主要的工作有三个,一是存储集群的元信息,(某个Key存储在哪个TiKV节点上);二是对TiKV集群进行调度和负载均衡(如数据的迁移,Raft group leader的迁移等),三是分配全局唯一且递增的事务ID。PD 通过 Raft 协议保证数据的安全性。Raft 的 leader server 负责处理所有操作,其余的 PD server 仅用于保证高可用

什么是分布式微服务?如何处理微服务的session?如何理解水平扩展和垂直扩展?

随声附和 提交于 2019-11-26 00:08:08
一、什么是分布式微服务? 区别: 分布式微服务(一个 大 系统 拆 成多个 子 系统分别部署到不同的服务器上面) 集群(部署 多个端一模一样 的大或子系统叫集群) 二、如何处理微服务的session? 用于分布式系统中的登入、登出,实现方式是 将用户登录信息保存到redis里面 。这样要访问那台机器直接来获取认证就ok了。 三、如何理解水平扩展和垂直扩展? 水平扩展:copy 垂直扩展:拆分 来源: CSDN 作者: 不努力,谁会可怜你? 链接: https://blog.csdn.net/qq_32603969/article/details/103235872

看完这篇文章你就清楚的知道 ZooKeeper的 概念了

ぃ、小莉子 提交于 2019-11-25 22:44:38
前言 相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 是个什么东西吗?如果别人/面试官让你给他讲讲 ZooKeeper 是个什么东西,你能回答到什么地步呢? 我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 solr 集群的时候,我使用到了 ZooKeeper 作为 solr 集群的管理工具。前几天,总结项目经验的时候,我突然问自己 ZooKeeper 到底是个什么东西?想了半天,脑海中只是简单的能浮现出几句话:“①Zookeeper 可以被用作注册中心。 ②Zookeeper 是 Hadoop 生态系统的一员;③构建 Zookeeper 集群的时候,使用的服务器最好是奇数台。” 可见,我对于 Zookeeper 的理解仅仅是停留在了表面。 所以,通过本文,希望带大家稍微详细的了解一下 ZooKeeper 。如果没有学过 ZooKeeper ,那么本文将会是你进入 ZooKeeper 大门的垫脚砖。如果你已经接触过 ZooKeeper ,那么本文将带你回顾一下 ZooKeeper 的一些基础概念。 最后,本文只涉及 ZooKeeper 的一些概念,并不涉及 ZooKeeper 的使用以及 ZooKeeper 集群的搭建。 网上有介绍 ZooKeeper 的使用以及搭建 ZooKeeper 集群的文章

Hadoop分布式集群环境搭建

旧城冷巷雨未停 提交于 2019-11-25 22:43:57
分布式环境搭建之环境介绍 之前我们已经介绍了如何在单机上搭建伪分布式的Hadoop环境,而在实际情况中,肯定都是多机器多节点的分布式集群环境,所以本文将简单介绍一下如何在多台机器上搭建Hadoop的分布式环境。 我这里准备了三台机器,IP地址如下: 192.168.77.128 192.168.77.130 192.168.77.134 首先在这三台机器上编辑 /etc/hosts 配置文件,修改主机名以及配置其他机器的主机名 [root@localhost ~]# vim /etc/hosts # 三台机器都需要操作 192.168.77.128 hadoop000 192.168.77.130 hadoop001 192.168.77.134 hadoop002 [root@localhost ~]# reboot 三台机器在集群中所担任的角色: hadoop000作为NameNode、DataNode、ResourceManager、NodeManager hadoop001作为DataNode、NodeManager hadoop002也是作为DataNode、NodeManager 配置ssh免密码登录 集群之间的机器需要相互通信,所以我们得先配置免密码登录。在三台机器上分别运行如下命令,生成密钥对: [root@hadoop000 ~]# ssh-keygen -t