
dubbo
郭敬仰
这个作者很懒,什么都没留下…
展开
-
最全最简单的dubbo教程-开篇《一》
前言搜搜dubbo相关文章,都是一堆复制粘贴的,有的甚至直接复制官网的变成自己的博客,不知道有啥意思?无奈之下只有自己学习,自己弄一套完整的资料分享给大家。如果项目紧急需要五分钟上手dubbo进行开发,请参考:最简单的dubbo教程-快速入门本文主要参考:dubbo官网简介本文会用HelloWorld开始,带大家从0到1,逐渐学会dubbo,都有demo的案例可以下载。dubbo的其...原创 2018-12-13 11:07:30 · 23763 阅读 · 7 评论 -
最简单的dubbo教程-admin管理平台搭建
1. 准备工作下载我已经打好的war包,百度网盘地址:链接:https://pan.baidu.com/s/1c2bbAGK 密码:z64l 也可以到我的参考博客,自行打包2.安装将下载好的dubbo-admin-2.5.4-SNAPSHOT.war包放到tomcat的webapps目录下。 启动tomcat解压war包,然后再关闭tomcat。 3.配置在dubbo-admin-2.5.4-原创 2017-12-26 17:08:17 · 7121 阅读 · 14 评论 -
最全最简单的dubbo教程-本地存根《十二》
业务场景远程调用后,有时候服务的提供方也想在服务的消费方执行一些比如,提前验证一些参数,不符合要求的情况下制造一些容错数据返回给用户,避免不必要的远程调用对系统资源的消耗。那么本地存根就是解决这个问题的。配置方法定义一个本地存根该存根必须实现共同的接口,且个人建议放在共同依赖接口定义的位置如图:我在代码的11行的位置,打印了执行存根的代码。在消费端或者提供端配置存根消费端的配置&...原创 2018-12-29 14:23:34 · 1859 阅读 · 2 评论 -
最全最简单的dubbo教程-直连提供者《十》
简介感觉官网说的挺详细的,但是在开发中还是蛮重要的,所以我再提一下,官网给出了三种直连方案,通过 -D 参数指定,通过文件映射,通过 XML 配置,如图:具体配置方法通过 -D 参数指定(推荐)就是项目启动时候设置直连的服务提供者,如图:通过文件映射(推荐)服务很多的情况下,可以用文件映射的形式,dubbo2.0 以上版本自动加载 ${user.home}/dubbo-resolv...原创 2018-12-18 19:06:53 · 1631 阅读 · 0 评论 -
最全最简单的dubbo教程-服务降级《十三》
业务背景从网上拷贝来的,当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。这个时候可以通过服务降级功能临时屏蔽某个出错的非关键服务,并定义降级后的返回策略。降级策略服务降级策略分为两种,一种是mock=force:return+null另一种是mock=fail:return+null,这...原创 2018-12-29 14:56:43 · 1698 阅读 · 0 评论 -
最全最简单的dubbo教程-负载均衡策略《十一》
官网说的也挺详细的,这里dubbo提供了四种负载均衡策略:random(随机), roundRobin(轮询), leastActive(最少活跃调用数), consistentHash (一致性 Hash)。默认为随机模式。随机这是默认的,顾名思义,就是按权重随机访问。轮询按权重轮询访问最少活跃调用数这里越慢的服务收到的请求会越少一致性 Hash这里按照请求的参数来计算...原创 2018-12-19 12:37:24 · 2161 阅读 · 8 评论 -
最全最简单的dubbo教程-服务暴露过程《十六》
服务暴露的总流程首先将服务的实现封装成一个Invoker,Invoker中封装了服务的实现类。将Invoker封装成Exporter,并缓存起来,缓存里使用Invoker的url作为key,然后注册到注册中心。服务端Server启动,监听端口,等待调用。(请求来到时,根据请求信息生成key,到缓存查找Exporter,就找到了Invoker,就可以完成调用。)详细流程从上一篇容器启动...原创 2019-01-04 14:03:08 · 1530 阅读 · 1 评论 -
最全最简单的dubbo教程-集群容错《十四》
在集群调用失败时,Dubbo 提供了多种容错方案,缺省为 failover 重试。dubbo提供了以下几种集群容错模式:Failover Cluster官方解释:失败自动切换,当出现失败,重试其它服务器 。通常用于读操作,但重试会带来更长延迟。可通过 retries=“2” 来设置重试次数(不含第一次)。解释说明:很好理解,当调用失败的时候自动重试其它服务器在有限次数之内,直到成功才停...原创 2019-01-02 17:59:20 · 1408 阅读 · 0 评论 -
最全最简单的dubbo教程-服务引入《十七》
服务引入总流程创建client客户端,用来连接请求服务消费者。封装invoker,里面主要包含服务提供者地址,端口等信息。服务引入详细流程在ReferenceBean->getObject()->init()中会调用createProxy()方法用来创建代理对象。在createProxy()中会执行一个refprotocol.refer()方法,这里refprotocol...原创 2019-01-07 16:43:03 · 1058 阅读 · 0 评论 -
最全最简单的dubbo教程-服务调用原理《十八》
简单介绍如果前面都理解的话,并且netty的demo做过的话,这步就很好理解了,主要就是客户端请求服务器的一个过程。下面是官网提供的一个图,用来解释他的调用过程:从上面的图可以看出代理对象proxy产生之后,如果不做cache(缓存),mock(本地伪装)的话,并且有多个invoker的情况下换根据负载均衡机制选择一个invoker进行请求,中间有很多filter,主要做统计用的,然后通过客...原创 2019-01-07 20:34:06 · 1187 阅读 · 0 评论 -
最全最简单的dubbo教程-多版本《九》
多版本作用多版本主要过渡的时候用,实现灰度发布的一个手段。这里官网给出的解释:多版本实测新建多个实体类这里我给接口做了两个实现类,一个是DefaultServiceImpl,一个是DefaultServiceImpl2:服务提供者配置服务消费者配置配置一访问结果配置二访问结果当然可以加多少个版本都可以,这里只给出两个案例,消费者只需要改版本号就可以调用服务提供者...原创 2018-12-18 17:55:04 · 1498 阅读 · 0 评论 -
最全最简单的dubbo教程-启动时检查《八》
启动时检查作用这里是官网给出的说明:启动时检查分为两个方面,一个是服务注册订阅检查另一个是判断是否有服务提供者,默认都为ture,意思就是服务启动的时候如果没有成功注册订阅,或者服务消费者启动的时候找不到对应的服务器提供者,就会报错阻止项目的启动。官网说了,可以设置为false,意思就是可以想让项目启动起来,发现服务未注册或者没有服务提供者时报错。怎么设置启动时检查另外检查服务提供者的时...原创 2018-12-18 17:26:05 · 1580 阅读 · 0 评论 -
最简单的dubbo教程-快速入门
所需环境zookeeper作为dubbo的注册中心,dubbo服务提供方和消费方都需要在zookeeper注册中心注册。 可参考:http://blog.youkuaiyun.com/jingyangv587/article/details/78901508 注意:启动后,请勿关闭!开始搭建1. 服务提供方和消费方都需要的包(这里我新建的maven工程为pom工程,将共同的项目依赖写到pom.xml中)总原创 2017-12-26 14:29:34 · 45867 阅读 · 41 评论 -
最全最简单的dubbo教程-以XML的形式整合dubbo《二》
目前官网给出了,四种整合dubbo的方式分别是,XML配置、属性配置、API配置、注解配置,详细说明见官网,这里就不再多说了。XML整合的案例在快速入门中已经有了,只不过不是与springboot方式整合的,所以这里再次整合一遍。开始搭建项目结构如图:共同需要的依赖 <dependency> &am原创 2018-12-13 16:13:17 · 7319 阅读 · 20 评论 -
最全最简单的dubbo教程-以属性配置的形式整合dubbo《三》
通过.properties文件的方式搭建与XML原理都一样,只不过所有的声明信息都填写到.properties里面了。这里是官网给出的解释:开始搭建服务生产者配置在application.propetries中声明生成者配置信息#springboot应用spring.application.name = dubbo-provider-demoserver.port = 9090#...原创 2018-12-13 17:44:41 · 3477 阅读 · 11 评论 -
最全最简单的dubbo教程-以api注解的形式整合dubbo《四》
服务提供者服务提供者的代码结构如下:其中ProviderConfig.java的配置为:@Configurationpublic class ProviderConfig {@Beanpublic ApplicationConfig applicationConfig() {ApplicationConfig applicationConfig = new ApplicationC...原创 2018-12-14 13:33:16 · 2795 阅读 · 3 评论 -
最全最简单的dubbo教程-最新dubbo管理平台搭建(jar包的形式)《五》
这里是按照官网最新版本的admin管理平台搭建,老版本的war包的形式请移步我的另外一篇博客:最简单的dubbo教程-admin管理平台搭建下载dubbo-admin项目最新版dubbo-admin下载地址: 历史版本下载地址:https://github.com/apache/incubator-dubbo/releases该地址2.6版本以上的包中没有dubbo-admin ,2.5...原创 2018-12-17 10:00:33 · 2603 阅读 · 3 评论 -
最全最简单的dubbo教程-dubbo项目启动时各种配置方式的加载顺序《六》
前面我们介绍了三种dubbo的整合方式,如果同时存在的情况下,他们的属性参数到底是按哪个来?这里盗下官网的图:如图所示:VM 启动 -D 参数优先级别最高,XML配置方式 次之,最后才是 dubbo.properties的配置方式。建议 dubbo.properties作为缺省值配置。开始验证...原创 2018-12-17 11:11:33 · 3425 阅读 · 0 评论 -
最全最简单的dubbo教程-配置的覆盖关系《七》
一种场景,如果一个属性比如超时时间的设置很多地方都有设置,到底按哪一个来呢?这是官网给出的解释:这里是官网给出的覆盖关系的图:从图中可以看出方法级的在最上边,接口级的次之,全局配置的是最后,而且同级别的情况下,消费者的优先级大于服务提供者。这里是个人给出的总结:(1)精确优先(2)就近优先(消费者优先)(1)的优先级要大于(2)同时满足(1)的情况下,根据(2)来判断优先级别,意...原创 2018-12-17 15:17:02 · 1857 阅读 · 1 评论 -
最全最简单的dubbo教程-标签解析原理《十五》
本文主要分析 XML 配置的实现原理和源码。dubbo解析xml的配置的方式主要是通过spring提供的解析工具解析,dubbo自定义DubboNamespaceHandler 类这个类继承spring提供的NamespaceHandlerSupport类,如图:这个类在spring启动的时候会调用init方法为每一种标签对应一个特定的标签解析器DubboBeanDefinitionPars...原创 2019-01-03 15:25:14 · 1287 阅读 · 0 评论 -
最全最简单的dubbo教程-实现个简单的RPC《十九》
项目案例的结构服务器端业务处理类//服务器端业务处理类public class InvokeHandler extends ChannelInboundHandlerAdapter { //得到某接口下某个实现类的名字 private String getImplClassName(ClassInfo classInfo) throws Exception{ ...原创 2019-01-16 14:38:22 · 2037 阅读 · 2 评论