Dubbo框架学习笔记

Dubbo简介

   Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

Dubbo架构

dubbo-architucture

节点角色说明

节点 角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器

调用关系说明

  1. 服务容器负责启动,加载,运行服务提供者。
  2. 服务提供者在启动时,向注册中心注册自己提供的服务。
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

Dubbo 架构具有以下几个特点,分别是连通性、健壮性、伸缩性、以及向未来架构的升级性。

快速体验

快速体验需要的资源:zookeeper、dubbo。

获取资源:

zookeeper:https://zookeeper.apache.org/

dubbo:https://github.com/apache/dubbo

配置启动zookeeper

进入conf目录   ..\zookeeper-3.4.11\conf   修该zoo.cfg客户端口:

clientPort=2181

 启动bin\zkcli.cmd 和bin\zkserver.cmd

导入启动dubbo

使用maven或者IDE解决maven依赖。官方提供的dubbo中有demo:(基于Spring)

demo提供三种开发方式:基于注解的、基于dubboAPI的和基于xml的,我们以基于xml为例进行修改并运行:

提供商和消费者都注册到zookeeper

<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />

和zookeeper保持一致哈

提供商暴露服务

dubbo-provider.xml加入配置

<bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl"/>
<dubbo:service interface="org.apache.dubbo.demo.DemoService" ref="demoService"/>

消费者订阅服务需求

dubbo-consumer.xml加入配置

 <dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.demo.DemoService"/>

模块说明

由interface模块提供接口,提供方模块对接口进行实现,并将实现类进行bean注册对外提供服务:

<!--我的服务提供者注册-->
    <bean id="myService" class="org.apache.dubbo.demo.provider.MyServiceImpl"/>
 <!-- 我的服务提供者-->
    <dubbo:service interface="org.apache.dubbo.demo.MyService" ref="myService"/>

在消费模块订阅需求:

    <!--我的服务消费者-->
    <dubbo:reference interface="org.apache.dubbo.demo.MyService" id="myService" check="false"/>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章