分布式基础

分布式系统:

  • 概念:将请求按照一定的策略分派到不同的机器上,多台机器执行相同的业务逻辑,看起来就像是在一台机器上访问一样。
  • 说明:分布式系统中包含了:分布式文件系统、分布式存储系统。。


CAP理论:

一个分布式系统不可能同时满足一致性,可用性和分区容错性这三个基本的要求,最多只能同时满足其中的两项。

    C(Consistency):一致性,即所有节点上的数据时刻保持同步。

        1>强一致性:所有节点上的数据时刻保持同步,用户体验最好,但是会降低系统的性能(降低系统的可用性)。
        2>弱一致性:系统在写入成功后,不保证立即可以读到最新写入的值,也不保证多久之后数据能够达到一致,但是会尽可能地保证到某个时间级别(如秒级别)后,数据能够达到一致状态。
        3>最终一致性: 最终一致性是弱一致性的一个特例,系统保证在一定时间内能够达到数据一致的状态,大多数分布式系统在数据一致性上都选择了最终一致性。

    A(Availability):每个请求都能接收一个响应,无论响应成功或失败

    P(Tolerance to netword Partitions):系统应该持续提供服务,即使服务器发生网络延迟或死机,导致某些 server 与集群中的其他机器失去联系

        CA系统:满足一致性、可用性的系统:
            可扩展性不好。
            eg:RDBMS,关系型数据库中的事务可以很好地实现数据的一致性。
        CP系统:同时满足一致性、分区容错性的系统
            性能不是特别高。
            eg:redis、mongodb
        AP系统:同时满足可用性、分区容错性的系统
            不能满足强一致性,但是可以满足弱一致性,故大多数网站的架构选择了AP原则。

说明:由于当前的网络硬件肯定会出现延迟丢包等问题,故分区容错性是分布式系统中必须要实现的,所以我们只能在一致性和可用性之间进行权衡。

BASE(Basically Available,Soft-state,Eventually Consistent)理论:

  • 概念:分布式系统只需满足基本可用、柔性状态、数据最终一致性即可。
  • 基本可用(Basically Available):
    • 概念:一小部分服务挂掉后,其它服务可以正常提供服务。
    • eg:当一台机器出问题时,其它机器可以正常提供服务。遇到流量洪峰时,采取降级策略保证基础服务可用。
  • 柔性状态(Soft state):
    • 概念:允许系统中的数据存在中间状态,并且中间状态的存在不会影响系统的整体可用性,即系统允许在不同节点的数据副本之间在进行数据同步过程中存在延时。
  • 最终一致性(Eventually consistent):
    • 目的:解决关系数据库强一致性导致可用性降低的问题。
    • 思想:通过降低系统对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上的提升。

        
    

### 回答1: Dubbo是一个高性能的Java RPC框架,它提供了分布式服务框架的支持,可以让开发者轻松地构建分布式应用。而Zookeeper是一个分布式的协调服务,它可以用来管理和协调分布式系统中的各种资源,如配置信息、命名服务、分布式锁等。 当使用Dubbo框架,我们可以将服务注册到Zookeeper中,这样其他的服务消费者就可以通过Zookeeper来发现和调用这些服务。同,Zookeeper还可以用来监控服务的状态,当服务出现故障,Zookeeper可以及地通知其他服务消费者,从而保证整个分布式系统的稳定性和可靠性。 因此,Dubbo和Zookeeper的结合可以为分布式系统的开发和运维提供很好的支持,让开发者可以加轻松地构建高性能、可靠的分布式应用。 ### 回答2: Dubbo和Zookeeper是两个分布式框架,结合起来可以帮助开发者构建高性能、高可用性分布式应用。Dubbo提供了RPC远程过程调用框架,可以实现跨进程、跨语言的方法调用,支持负载均衡、容错、限流等特性。而Zookeeper是一个开源的分布式协调服务框架,可以协调和管理分布式应用的节点之间的通信。下面详细介绍Dubbo和Zookeeper的分布式基础。 1、Dubbo Dubbo是一款高性能、轻量级的RPC框架,采用Java编写,支持多种协议(Dubbo协议、HTTP、Hessian、RMI等),通过注册中心连接提供者和消费者。Dubbo可以做到请求耗的优化、负载均衡、集群容错、异步调用等特性,让开发者可以轻松地构建分布式应用。 Dubbo的工作流程如下:服务提供者(Provider)将服务注册到注册中心,服务消费者(Consumer)从注册中心订阅服务,当服务消费者需要调用服务,会通过代理对象来远程调用服务提供者,完成方法调用并将结果返回。Dubbo自带了多种注册中心的实现,例如Zookeeper、Redis等。 2、Zookeeper Zookeeper是一个开源的分布式协调服务框架,可以用来协调和管理分布式应用的节点之间的通信。Zookeeper的主要作用是提供一个分布式的协调服务,例如分布式锁、配置管理、分布式队列等。Zookeeper可以减轻分布式应用的复杂性,让开发者可以专注于业务逻辑。 Zookeeper通过基于目录树结构的数据模型来保存数据,并提供了一套完整的API用于操作这些数据。Zookeeper的工作原理是基于主从架构,当Zookeeper集群中的节点出现故障,可以自动选举出新的Leader节点以继续提供服务。 Dubbo和Zookeeper结合起来可以构建一个高可用性分布式应用。Dubbo将服务注册到Zookeeper,服务消费者从Zookeeper订阅服务,同Zookeeper提供了注册中心的高可用性和负载均衡等特性。当服务提供者出现故障,Zookeeper可以自动重新分配服务提供者的角色,从而保证服务的高可用性。 ### 回答3: Dubbo和Zookeeper是目前流行的分布式系统基础组件,它们常常被一起使用来构建可靠的分布式服务。在现代复杂的分布式系统中使用基础组件可以极大地简化开发和部署工作,而测试和维护都变得容易。 Dubbo是一种高性能的分布式服务框架,它提供了统一的服务管理和RPC调用机制。Dubbo的核心在于将服务提供方和服务消费方解耦,同提供了动态负载均衡和服务治理等功能。Dubbo具有高性能、可靠、易扩展等优点,广泛应用于大型分布式系统中。 Zookeeper是一种开源的分布式配置管理和协调解决方案,可以实现分布式配置管理、命名服务、分布式锁、集群选主和消息队列等功能。Zookeeper具有高可用性、可靠性和易扩展性,可以轻松管理大型分布式系统的配置和状态信息。Zookeeper还提供了建立分布式协调基础设施的基础组件。 在实际应用中,Dubbo通常和Zookeeper一起使用。服务提供方将服务注册到Zookeeper中心,服务消费方从Zookeeper中获取服务地址,并进行RPC调用,通过Dubbo提供的高性能、高可靠性的RPC调用机制实现分布式服务的调用和管理。 总之,Dubbo和Zookeeper是分布式系统基础构件,通常会共同使用来实现高性能、高可靠性的分布式服务。对于分布式开发者来说,掌握这些基础组件的使用和原理,可以对分布式开发和维护提供很大帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值