服务发现:Zookeeper vs etcd

本文探讨了Zookeeper和etcd在服务注册和发现中的应用。Zookeeper以其强一致性特性,通过命名空间和ephemeral nodes实现服务注册,而服务发现需要客户端处理负载均衡和失效处理。etcd则基于Raft一致性算法,利用key TTL进行服务注册,并通过long-polling连接进行服务发现。两者在处理网络分区故障时有不同的策略。
摘要由CSDN通过智能技术生成

服务注册和服务发现是分布式系统和SOA的核心组成部分,服务注册是将服务描述信息写入集群,服务发现则是客户端能从众多服务提供者获取相应正确地址。传统情况下,使用静态配置方法实现服务信息注册。当大型系统中,服务量更大、变化更频繁时,为了避免不必要的服务中断,动态的注册和发现则尤为重要。本文讨论两个可用于服务注册和发现的项目Zookeeper和etcd。

  1. Zookeeper
    Zookeeper是这类项目中比较悠久的一个,它起源于Hadoop,帮助Hadoop集群维护各种组件。Zookeeper使用了一种称为Zab(Zookeeper Atomic Broadcas)的协议作为其一致性复制的核心。
    Zookeeper数据结构
    图1 Zookeeper数据结构
    Zookeeper会维护一个具有层次关系的数据结构,非常类似于一个标准的文件系统。
    Zookeeper数据结构的特点:
    • 每个子目录项都被称为znode
    • znode可以有版本,每个znode中存储的数据可以有多个版本
    • znode可以被监控,包括目录节点中存储数据的修改、子节点目录的变化等
    • znode可以有子节点目录,注意EPHEMERAL类型的目录节点不能有子节点目录
    • znode可以是临时节点,一旦创建这个的znode客户端与服务器失去联系,znode将自动删除

服务注册的实现主要是通过命名空间(namespace)下的ephemeral nodes,ephemeral nodes只有在client建立连接后才存在ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值