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或许可以提供一些思路,作为业界最具影响力的海量搜索 ...
随机推荐
- 摇一摇js 实现
if (window.DeviceMotionEvent) { window.addEventListener('devicemotion',deviceMotionHandler, false); ...
- 为 placeholder 自定义样式
textarea::-webkit-input-placeholder{ padding: 1em; } textarea::-moz-placeholder{ padding: 1em; } 同理, ...
- python基础之文件操作
对于文件操作中最简单的操作就是使用print函数将文件输出到屏幕中,但是这种操作并不能是文件保存到磁盘中去,如果下调用该数据还的重新输入等. 而在python中提供了必要的函数和方法进行默认情况下的文 ...
- MySql中的字符数据类型
MySql中的varchar类型 1.varchar类型的变化 MySQL数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255根据不同版本数据库 ...
- HTML5开发笔记:初窥CANVAS,上传canvas图片到服务器
项目做到一个裁切图片的功能,就是让用户上传头像的时候可以裁切一下图片,选择一个合适大小位置来作为头像.之中用到了crop.js这个插件,用canvas直接绘制了用户裁切缩放后的图片.裁切的过程这边就不 ...
- css中的四个不同的position设置
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- 【二分】POJ 2109
谁骗我这是贪心TT 大概就是求k的n次方等于p时的k(k到10^9),由于,p的数据到了10^101,n到200,所以直接算估计T ?? 反正看完想到二分,其实数据要是再大点估计我这个二分不行. 网上 ...
- CentOS 7部署Node.js+MongoDB:在VPS上从安装到Hello world
写好代码,花钱买了VPS,看着Charges一直上涨却无从下手?记一位新手司机从购买VPS到成功访问的过程 0.购买VPS 首先,选择VPS提供商,部署一个新的服务器(Deploy New Serve ...
- How to parse HTML page data in Windows Phone
1. Navigate to page WebBrowser control browser.Navigate(new Uri("http://www.xxxx.com")); 2 ...
- Spring基础学习笔记-Bean的基础知识
一. Bean的定义,初始化,使用和销毁 二.ref指定依赖的三种模式 三.Bean的五种自动装配模式(autowire) 四.Bean依赖检查的4种模式:配合atuowire使用,dependenc ...