zoukankan      html  css  js  c++  java
  • Dubbo 微服务

    (一)Dubbo的优点和缺点

      1 优点: 相比httpClient少些代码,容易定位bug,容易扩展,容易发布,支持集群,支持故障转移

      2 缺点: 

        1、性能低,分布式系统是跨进程,跨网络的,性能很受网络延迟和带宽的影响。

        2、可靠性差:由于高度依赖网络状况,任何一次远程调用都可能失败。

        3、运维成本:一个系统拆成了多个服务,每个服务都得配置,部署,监控,日志处理

      3 概念介绍

        1 RPC : RPCRemote Procedure Call)—远程过程调用 (Dubbo微服务框架底层用的是RPC)

          2 SOA : SOA面向服务的架构Service-oriented architecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过接口联系起来。各种各样的服务可以通过接口进行交互。

    (二)实现分布式有两种实现方法

      第一种 : 用httpClient

      第二种 : 用dubbo

      


    (三) 引入 Zookeeper(服务注册中心

       3.1 下面来用解释引入的它的作用

         需求: 客户端直接服务提供者,无法实现集群

      解释: ZooKeeper是一个分布式应用程序协调服务。他是一个为分布式应用提供一致性服务的软件,提供的功能包括:

    1. 配置维护
    2. 域名服务
    3. 分布式同步
    4. 组服务等

      当客户端发起请求时ZooKeeper返回正确的服务器地址

      业务逻辑详解

    1.  当服务的提供者启动时,会将服务的名称: IP和端口   写入ZooKeeper 
    2. ZooKeeper内部会维护服务列表,某个服务提供者关机了,服务还能正常运行
    3. 当消费者需要访问服务时,需要先访问ZooKeeper获取服务列表信息。之后将服务列表保存到本地缓存中,方便后续的访问。在客户端内部有负载均衡算法,筛选出一台服务器,之后进行访问。
    4. 如果ZooKeeper服务器出现宕机现象。这时注册中心通过心跳检测的方式判断服务器是否宕机。如果服务器宕机则会将该服务器信息从服务列表中删除。之后将新的服务列表发送消费者(客户端)进行更新

      ZooKeeper其实也可以管理tomcat集群和redis集群.但是tomcat用nginx比较合适,redis 用mycat更为合适.

      

      

      3.2 一张图 ZooKeeper 与 nginx 和 mycat

       

      

      3.3 关于ZooKeeper的面试题

      当ZooKeeper宕机后,消费者能否正确运行

      答案: 可以

      原因:因为ZooKeeper会动态的向客户端更新服务列表信息。当ZooKeeper宕机后,由于之前已经同步了ZooKeeper的服务列表信息,所以客户端可以按照自己已经缓存的清单进行访问。如果在这个期间服务端程序发现宕机现象,那么则访问故障机时由于不能通信,则等待超时时间(无响应),则访问下一台服务器。如果这时,所有的服务端程序都宕机则整个服务陷入瘫痪。


    (四)Dubbo(跨进程调用)案例 深入分析

      4.1 原理

      

      4.2分析

      


               

                     逢山开路,遇水搭桥

      

  • 相关阅读:
    Object.prototype的原型对象 格式化日期【js笔记】
    数组中去掉重复的 【js笔记】
    按照内容多少,每行自动按照内容较多的div设置其他div的高度【jq笔记】
    动态操作表格 【js笔记】
    关于记录任意选择行删除或者其他的操作【jq笔记】
    Good studying and day day up
    第三周星期一
    第二周星期天
    第二周星期六
    第二周星期五
  • 原文地址:https://www.cnblogs.com/misscai/p/9973200.html
Copyright © 2011-2022 走看看