可以看这个文档

http://dubbo.io/User+Guide-zh.htm

1.简介

Dubbo是一个框架,它能够暴露某个系统的服务接口,使得其他系统能够使用该系统的接口

Dubbo的框架如下图所示。框架主体分为4个部分

1.Provider    服务提供者

2.Registry    消息注册中心

3.Consumer  消费者

4.Monitor  监控中心

Container是服务运行的容器。

从上图中可以较为清晰的看到各个环节直接的关系。流程如下

1.容器启动服务

2.服务向注册中心注册

3.消费者启动,想注册中心请求服务列表

4.消费者请求需要的服务,提供方提供服务

5.在固定时间段后向检测中心发送服务调用的统计

需要注意的是,正常情况下服务方和消费方仅仅在启动的过程中向注册中心发送请求。如果在过程中服务方发生变动,也会通知注册中心,注册中心以长连接形式通知消费方更新缓存。

如果注册中心在运行了一段时间后挂了,也是不影响消费方继续使用服务方的服务的,因为相应的信息已经存进了缓存中。

2.使用

使用dubbo无论消费方还是服务方都需要添加依赖

<dependency>

   <groupId>com.alibaba</groupId>

   <artifactId>dubbo</artifactId>

   <version>2.5.3</version>

</dependency>

服务方需要暴露自己的接口,需要注册到zk上

消费方也需要连接zk

消费方和服务方需要共有接口 (做一个jar包两边都依赖)

(1)<dubbo:service>服务提供者暴露服务配置

<dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" />

<bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl" />

interface表明要调用的接口,ref表明接口的实现类。这两项是必填的,其余的可以看文档来了解

(2)<dubbo:reference> 服务消费者引用服务配置

<dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" /> 

id 服务要引用的bean名称 inteface 需要的服务接口 。这两项是必填的,其余的可以看文档来了解

(3)<dubbo:protocol> 服务提供者协议配置

<dubbo:protocol name="dubbo" port="20880" />

name 协议名称 port 协议端口(缺省端口为20880) name是必填项

(4)<dubbo:registry> 消息中心注册配置 消费和提供方都需要

<dubbo:registry address="127.0.0.1:1234" />

address 注册中心的地址和端口 如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的注册中心需要配置多个<dubbo:registry>标签

(5)<dubbo:application>  项目名配置 消费和提供方都需要

<dubbo:application name="hello-world-app" />

name 项目名称,必填项。注意:消费者和提供者应用名不要一样,此参数不是匹配条件,你当前项目叫什么名字就填什么,和提供者消费者角色无关

有以上几项,最简单的dubbo框架就搭建起来了,还有很多可以配置的,比如仅暴露接口中的一个方法,设置回调等等,还是推荐去看官方的文档,这样比较全面。

使用的过程中,服务提供不需要做任何修改,使用方只要获得接口bean,然后执行需要的方法就可以了。例如ApplicationContext.getBean("demoInteface")来获得bean

文档位置在开头

Dubbo学习的更多相关文章

  1. Dubbo学习小记

    前言 周一入职的新公司,到了公司第一件事自然是要熟悉新公司使用的各种技术,搭建本地的环境. 熟悉新公司技术的过程中,首先就是Maven,这个前面已经写过文章了,然后就是Dubbo----公司的服务都是 ...

  2. dubbo学习(zz)

    dubbo学习 博客分类: 开源软件   Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站 ...

  3. Dubbo学习(六) dubbo 架构图 以及调用过程

    一.Dubbo结构图   duubo结构图 我们解释以下这个架构图:Consumer服务消费者,Provider服务提供者.Container服务容器.消费当然是invoke提供者了,invoke这条 ...

  4. Dubbo学习(一) Dubbo原理浅析

    一.初入Dubbo Dubbo学习文档: http://dubbo.incubator.apache.org/books/dubbo-user-book/ http://dubbo.incubator ...

  5. dubbo学习小结

    dubbo学习小结 参考: https://blog.csdn.net/paul_wei2008/article/details/19355681 https://blog.csdn.net/liwe ...

  6. Dubbo学习系列之十三(Mycat数据库代理)

    软件界有只猫,不用我说,各位看官肯定知道是哪只,那就是大名鼎鼎的Tomcat,现在又来了一只猫,据说是位东方萌妹子,暂且认作Tom猫的表妹,本来叫OpencloudDB,后又改名为Mycat,或许Ca ...

  7. Dubbo学习系列之八(分布式事务之MQ方案)

    自从小王玩起了微服务,发现微服务果然很强大,好处真是太多,心中暗喜,然而,却也遇到了分布式中最棘手的问题:分布式事务.小王遍访各路神仙,也无个完美开源解决方案,当然,也有些实际可行的手法,虽不算完美, ...

  8. Dubbo学习系列之九(Shiro+JWT权限管理)

    村长让小王给村里各系统来一套SSO方案做整合,隔壁的陈家村流行使用Session+认证中心方法,但小王想尝试点新鲜的,于是想到了JWT方案,那JWT是啥呢?JavaWebToken简称JWT,就是一个 ...

  9. Dubbo学习系列之十五(Seata分布式事务方案TCC模式)

    上篇的续集. 工具: Idea201902/JDK11/Gradle5.6.2/Mysql8.0.11/Lombok0.27/Postman7.5.0/SpringBoot2.1.9/Nacos1.1 ...

  10. Dubbo学习系列之十六(ELK海量日志分析框架)

    外卖公司如何匹配骑手和订单?淘宝如何进行商品推荐?或者读者兴趣匹配?还有海量数据存储搜索.实时日志分析.应用程序监控等场景,Elasticsearch或许可以提供一些思路,作为业界最具影响力的海量搜索 ...

随机推荐

  1. spring 注解

    @Qualifier("XXX") 中的 XX是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 by ...

  2. 自动换行 lable换行 div换行 span换行 label换行

    label  word-break: break-all; white-space: normal;

  3. XSS跨站点脚本攻击

    XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS. 以下为Jav ...

  4. jquery placeholder

    /* * @author ambar * html5 placeholder pollfill * - 使用绝对定位内嵌层 * - 也适用于密码域 * 目标浏览器: IE 6~9, FF 3.5 */ ...

  5. CodeForces 515B. Drazil and His Happy Friends

    B. Drazil and His Happy Friends time limit per test 2 seconds memory limit per test 256 megabytes in ...

  6. 【水】基于ege的简单3D模拟

    我们模拟从被观察物体射出光线,在眼球焦点交汇,然后打到视网膜上成像 ——足够了吧,剩下的难度应该是普及- 只是有一些常数可以自己调一下,看着顺眼就好 #include <graphics.h&g ...

  7. 用 Graphviz+pvtrace 可视化函数调用

    最近在想怎么把一个程序的函数调用关系快速的用流程图的方式画出来,之后看到了这个一篇文章“用 Graphviz 可视化函数调用”(http://www.ibm.com/developerworks/cn ...

  8. dedecms二级导航标签调用使用的方法

    <ul class="nav nav-pills blue"> <!--一级栏目下面有二级栏目的 --> {dede:channelartlist type ...

  9. UI--UIPickerView和UIDatePicker的总结

    回到顶部 UIPickerView的主要方法和城市选择器的修正 UIPickerView只有两个数据源方法.要想完整地显示出PickerView,需要结合使用代理方法 数据源方法: // 一共有多少组 ...

  10. [转]windows下和Ubuntu下adb找不到设备的解决方法

    最近在做flash手机项目,用fb选择android设备调试,总会出现找不到设备的情况.看了很多帖子都解决不了问题,后来终于研究出来是adb无法找到设备的问题.最后通知这篇帖子终于解决了问题. 使用电 ...