zoukankan      html  css  js  c++  java
  • 【Dubbo实战】基础学习篇(一)

    Dubbo的简单介绍

     

    是什么?

     

    Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000多个服务提供30多亿次訪问量支持。并被广泛应用于阿里巴巴集团的各成员网站。

    Dubbo是一个分布式服务框架,致力于提供高性能透明化的RPC远程服务调用方案。以及SOA服务治理方案。

     

    产生背景

     

    (1)当服务越来越多时,服务URL配置管理变得很困难,F5硬件负载均衡器的单点压力也越来越大。

    此时须要一个服务注冊中心,动态的注冊和发现服务,使服务的位置透明。

    并通过在消费方获取服务提供方地址列表,实现软负载均衡和Failover。降低对F5硬件负载均衡器的依赖,也能降低部分成本。

    (2)当进一步发展。服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动。架构师都不能完整的描写叙述应用的架构关系。

    这时,须要自己主动画出应用间的依赖关系图,以帮助架构师理清理关系。

    (3)接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务须要多少机器支撑?什么时候该加机器?等等

     

    为了解决这些问题


    第一步,要将服务如今每天的调用量。响应时间。都统计出来,作为容量规划的參考指标。

    其次,要能够动态调整权重,在线上,将某台机器的权重一直加大。并在加大的过程中记录响应时间的变化,直到响应时间到达阀值,记录此时的訪问量,再以此訪问量乘以机器数反推总容量。

     

     

    核心部分:

     

    远程通讯:提供对多种基于长连接的NIO框架抽象封装,包含多种线程模型。序列化。以及“请求-响应”模式的信息交换方式。

    集群容错:提供基于接口方法的透明远程过程调用,包含多协议支持,以及软负载均衡,失败容错。地址路由。动态配置等集群支持。

    自己主动发现:基于注冊中心文件夹服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方能够平滑添加或降低机器。

     

    能做什么?

     

    透明化的远程方法调用。就像调用本地方法一样调用远程方法。仅仅需简单配置,没有不论什么API侵入。

    软负载均衡及容错机制。可在内网替代F5等硬件负载均衡器,降低成本。降低单点。

    服务自己主动注冊与发现,不再须要写死服务提供方地址,注冊中心基于接口名查询服务提供者的IP地址,而且能够平滑加入或删除服务提供者。

     

    架构图:




    节点角色说明:


    Provider: 暴露服务的服务提供方。

    Consumer: 调用远程服务的服务消费方。

    Registry: 服务注冊与发现的注冊中心。

    Monitor:统计服务的调用次调和调用时间的监控中心。

    Container: 服务执行容器。

     

    调用关系说明:


    0. 服务容器负责启动,载入。执行服务提供者。

    1.服务提供者在启动时,向注冊中心注冊自己提供的服务。

    2.服务消费者在启动时,向注冊中心订阅自己所需的服务。

    3.注冊中心返回服务提供者地址列表给消费者,假设有变更,注冊中心将基于长连接推送变更数据给消费者。

    4.服务消费者,从提供者地址列表中。基于软负载均衡算法,选一台提供者进行调用,假设调用失败。再选还有一台调用。

    5.服务消费者和提供者。在内存中累计调用次数和调用时间。定时每分钟发送一次统计数据到监控中心。

     

    结束语:

     

    下篇解说dubbo+zookeeper+spring的整合应用。zookeeper为注冊中心,接下来我们的学习主要结合基于zookeeperDubbo注冊中心来学习Dubbo这个分布式系统框架。

     

    注:Dubbo的注冊中心有一下几种,用户指南中说明-推荐使用Zookeeper注冊中心



    Dubbo用户指南:


    用户指南



  • 相关阅读:
    remove white space from read
    optimize the access speed of django website
    dowload image from requests
    run jupyter from command
    crawl wechat page
    python version 2.7 required which was not found in the registry windows 7
    health
    alternate rows shading using conditional formatting
    word
    【JAVA基础】static 关键字
  • 原文地址:https://www.cnblogs.com/llguanli/p/6973071.html
Copyright © 2011-2022 走看看