注册中心简介

###服务间调用问题?

存在问题待解决?

  • ​ 客户端如何维护目标服务的地址信息
  • ​ 服务端服务状态变化,客户端如何感知
  • ​ 客户端对目标服务如何让负载均衡

注册中心的出现

在这里插入图片描述

注册中心:

​ Dubbo体系中的Zookeeper

​ Spring Cloud中的Eureka 和 Consul

Zookeeper定义

​ 分布式协调中间件

背景

​ Google Chubby 服务为了解决分布式一致性问题而出现。

​ 场景:Google Chubby 有个文件系统(GFS),五个服务,需要选出一个master server,其余节点同意,如何达到一致性?

​ 原理:5个服务都向一个主服务 Google server 创建文件并且写入自己地址,保证只有一个服务写入成功,其他服务通过读取这个文件就能知道这个master server 已经选出。

​ 另一个层面看:这种服务也是粗粒度的分布式锁服务,创建文件就相当于加锁操作。

​ 然而Google Chubby并不开源,雅虎基于Chubby 思想开发 类似的分布式 组件 Zookeeper,后来捐献给Apache。

​ 所以zookeeper的出现不是为了 注册中心而设计,是为了服务一致性、分布式锁而设计,而注册中心能实现的一种功能。

一致性问题

定义理解:分布式节点达到一致性:细粒度可理解投票(意见)一致性、数据同步一致等等。

本质: 在分布式服务系统中,就某个提议达到一致

大名鼎鼎 paxos协议出现就是为了在不可信的 网络环境中,按照 paxos 这个协议就能够针对某个提议达成一致。

zookeeper设计角色

​ leader:处理事务请求、调度者

​ follower:处理非事务请求、转发事务请求 、参与投票

​ Observer:与follower唯一区别的是不参与投票

分布式节点数据同步问题?

分布式事务问题?

​ 2pc提交、3p提交

leader选举

​ 2n+1个服务组成、必须过半

zookeeper的安装

  1. 单机安装

    下载安装包

    解压 tar -zxvf

    cp conf/zoo_sample.cfg zoo.cfg

    vi zoo.cfg 修改dataDir日志存放目录

  2. 集群安装(2n+1)

    单机安装3台 准备好

    修改zoo.cfg 端口

    建dataDir目录,设置myid文件 dataDir/myid文件,内容是对应的 server id

zoo.cfg文件

server.1=IP1:2888:3888 【2888:访问 zookeeper 的端口;3888:重新选举 leader 的端口】 ser       server.2=IP2.2888:3888
ser ver.3=IP3.2888:2888新

myid文件

1
  1. 相关命令

    bin/zkServer.sh start

    bin/zkServer.sh status

    bin/zkServer.sh stop

    bin/zkServer.sh restart

    zkCli.sh -timeout 0 -r -server ip:port

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值