Dubbo学习
可以看这个文档
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学习的更多相关文章
- Dubbo学习小记
前言 周一入职的新公司,到了公司第一件事自然是要熟悉新公司使用的各种技术,搭建本地的环境. 熟悉新公司技术的过程中,首先就是Maven,这个前面已经写过文章了,然后就是Dubbo----公司的服务都是 ...
- dubbo学习(zz)
dubbo学习 博客分类: 开源软件 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站 ...
- Dubbo学习(六) dubbo 架构图 以及调用过程
一.Dubbo结构图 duubo结构图 我们解释以下这个架构图:Consumer服务消费者,Provider服务提供者.Container服务容器.消费当然是invoke提供者了,invoke这条 ...
- Dubbo学习(一) Dubbo原理浅析
一.初入Dubbo Dubbo学习文档: http://dubbo.incubator.apache.org/books/dubbo-user-book/ http://dubbo.incubator ...
- dubbo学习小结
dubbo学习小结 参考: https://blog.csdn.net/paul_wei2008/article/details/19355681 https://blog.csdn.net/liwe ...
- Dubbo学习系列之十三(Mycat数据库代理)
软件界有只猫,不用我说,各位看官肯定知道是哪只,那就是大名鼎鼎的Tomcat,现在又来了一只猫,据说是位东方萌妹子,暂且认作Tom猫的表妹,本来叫OpencloudDB,后又改名为Mycat,或许Ca ...
- Dubbo学习系列之八(分布式事务之MQ方案)
自从小王玩起了微服务,发现微服务果然很强大,好处真是太多,心中暗喜,然而,却也遇到了分布式中最棘手的问题:分布式事务.小王遍访各路神仙,也无个完美开源解决方案,当然,也有些实际可行的手法,虽不算完美, ...
- Dubbo学习系列之九(Shiro+JWT权限管理)
村长让小王给村里各系统来一套SSO方案做整合,隔壁的陈家村流行使用Session+认证中心方法,但小王想尝试点新鲜的,于是想到了JWT方案,那JWT是啥呢?JavaWebToken简称JWT,就是一个 ...
- Dubbo学习系列之十五(Seata分布式事务方案TCC模式)
上篇的续集. 工具: Idea201902/JDK11/Gradle5.6.2/Mysql8.0.11/Lombok0.27/Postman7.5.0/SpringBoot2.1.9/Nacos1.1 ...
- Dubbo学习系列之十六(ELK海量日志分析框架)
外卖公司如何匹配骑手和订单?淘宝如何进行商品推荐?或者读者兴趣匹配?还有海量数据存储搜索.实时日志分析.应用程序监控等场景,Elasticsearch或许可以提供一些思路,作为业界最具影响力的海量搜索 ...
随机推荐
- iOS 编码转换
- (NSString *)SaveFileToDocuments:(NSString *)url { // NSString *url = @"http://172.28.250.70/a ...
- 3.使用OGG进程进行初始化数据
开始初始化数据的时候要满足下面的条件: 1.disable掉目标段表的外键约束 2.disable掉目标端表的触发器 3.删除目标段表的索引,加快初始化速度 4.目标端表结构创建完成 源端配置初始化抽 ...
- Linux使用ssh-keygen实现SSH无密码登录
一.原理简介: 1.SSH公钥认证的基本原理: SSH是一个专为远程登录会话和其他网络服务提供安全性的协议.默认状态下SSH链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修 ...
- 取两个DataTable的交集,删除重复数据
/// <summary> /// 取两个DataTable的交集,删除重复数据 /// </summary> /// <param name="sourceD ...
- sqlmap和burpsuite绕过csrf token进行SQL注入检测
利用sqlmap和burpsuite绕过csrf token进行SQL注入 转载请注明来源:http://www.cnblogs.com/phoenix--/archive/2013/04/12/30 ...
- 使用lnmp一键安装包后yum源出现的问题与解决
遇到一个问题就是执行 Yum update 或使用yum安装软件等命令的时候会有一个链接报404,使用find查找到该链接与kbsingh-CentOS-Extras.repo这个包有关,删除后yum ...
- 【BO】安装BO服务器时,oracle服务端安装ora-12514和12541的问题
今天在安装BO服务器,oracle数据库时,出现了这样一个问题,描述如下: 首先安装oracle10g Server 32位版.安装ORCL数据库之后,使用10gServer下的NET MANAGER ...
- 【Unity3d游戏开发】Unity3D中的3D数学基础---向量
向量是2D.3D数学研究的标准工具,在3D游戏中向量是基础.因此掌握好向量的一些基本概念以及属性和常用运算方法就显得尤为重要.在本篇博客中,马三就来和大家一起回顾和学习一下Unity3D中那些常用的3 ...
- [数据库]cakephp操作ENUM、tinyint等类型的一点说明
之前无法正常更新ENUM类型的数据,感觉是框架函数实现的bug. 问题很诡异,因为INIT的时候是可以成功写入的,没理由UPDATE的时候不成功. 前后琢磨了一下午,发现了一点蛛丝马迹才终于想通.问题 ...
- 葱类 Allium
韭菜 Allium tuberosum (Chinese chives) 韭黄(韭芽):不见光的特殊培养的软化韭菜品种 藠头(薤) Allium chinense (Chinese onion) 蒜 ...