Dubbo
2014Team
这个作者很懒,什么都没留下…
展开
-
Dubbo多版本控制
当系统进行升级时,一般都是采用“灰度发布(又称为金丝雀发布)”过程。即在低压力时段,让部分消费者先调用新的提供者实现类,其余的仍然调用老的实现类,在新的实现类运行没有问题的情况下,逐步让所有消费者全部调用成新的实现类。多版本控制就是实现灰度发布的一、创建提供者04-provider-version(1) 创建工程创建Maven的工程。(2) 导入依赖Spring的版本为4....原创 2019-07-30 00:41:52 · 3552 阅读 · 1 评论 -
Dubbo多注册中心
一、创建提供者08-provider-registers(1) 创建工程直接复制05-provider-group工程,并命名为08-provider-registers(2) 修改配置文件二、创建消费者08-consumer-registers(1) 创建工程直接复制05-consumer-group工程,并命名为08- consumer-registers(2)...原创 2019-08-03 14:49:30 · 358 阅读 · 0 评论 -
Dubbo服务暴露延迟
Dubbo 2.6.5 版本以后,如果我们的服务启动过程需要warmup事件,就可以使用delay进行服务延迟暴露。只需在服务提供者的<dubbo:service/>标签中添加delay属性。其值可以有三类正数:单位为毫秒,表示在提供者对象创建完毕后的指定时间后再发布服务。 0:默认值,表示当前提供者创建完毕后马上向注册中心暴露服务。 -1:表示在Spring容器初始化完毕后...原创 2019-08-03 15:08:50 · 1718 阅读 · 0 评论 -
Dubbo消费者异步调用Future使用
Dubbo的四大组件工作原理图,其中消费者调用提供者采用的是同步调用方式。消费者对于提供者的调用,也可以采用异步方式进行调用。异步调用一般应用于提供者提供的是耗时性IO服务一、Future异步执行原理黑色同步调用,而红色为异步调用UserThread:消费者线程 IOThrea:提供者线程 Server:对IO型操作的真正执行者二、Future异步调用(1) 创建提供者1...原创 2019-08-03 22:55:28 · 1578 阅读 · 0 评论 -
Dubbo提供者的异步执行
从前面“对提供者的异步调用”例子可以看出,消费者对提供者实现了异步调用,消费者线程的执行过程不再发生阻塞,但提供者对IO耗时操作仍采用的是同步调用,即IO操作仍会阻塞Dubbo的提供者线程。但需要注意,提供者对IO操作的异步调用,并不会提升RPC响应速度,因为耗时操作终归是需要消耗那么多时间后才能给出结果的。一、创建提供者10-provider-async3(1) 创建工程直接复制1...原创 2019-08-04 00:17:39 · 423 阅读 · 0 评论 -
Spring Boot中使用Dubbo
高并发下Redis会出现的问题:缓存穿透 缓存雪崩 热点缓存一、定义commons工程11-dubboCommons(1) 创建工程创建Maven的Java工程,并命名为11-dubboCommons(2) 定义pom文件<groupId>com.abc</groupId><artifactId>11-dubboCommons<...原创 2019-08-04 12:24:57 · 1738 阅读 · 0 评论 -
Dubbo简介
一、简介Dubbo官网为http://dubbo.apache.org/zh-cn/。该官网是Dubbo正式进入Apache开源孵化器后改的 Dubbo原官网为:http://dubbo.io二、RPCRPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术...原创 2019-08-04 13:00:48 · 5529 阅读 · 0 评论 -
Dubbo中CompletableFuture异步调用
使用Future实现异步调用,对于无需获取返回值的操作来说不存在问题,但消费者若需要获取到最终的异步执行结果,则会出现问题:消费者在使用Future的get()方法获取返回值时被阻塞。为了解决这个问题,Dubbo又引入了CompletableFuture来实现对提供者的异步调用一、创建提供者10-provider-async2A、创建工程直接复制10-provider-async工程,...原创 2019-08-03 23:49:21 · 2429 阅读 · 1 评论 -
Dubbo负载均衡
一、搭建负载均衡环境两个提供者,一个消费者二、创建提供者(1) 创建提供者02-provider-zk01A、创建工程复制前面的02-provider-zk工程,并重命名为02-provider-zk01B、修改配置文件C、修改Service实现类(2) 创建提供者02-provider-zk02A、创建工程复制前面的02-provider-z...原创 2019-07-31 20:33:00 · 211 阅读 · 0 评论 -
Dubbo集群容错
集群容错指的是,当消费者调用提供者集群时发生异常的处理方案一、Dubbo内置的容错策略(1) Failover故障转移策略。当消费者调用提供者集群中的某个服务器失败时,其会自动尝试着调用其它服务器。该策略通常用于读操作,例如,消费者要通过提供者从DB中读取某数据。但重试会带来服务延迟(2) Failfast快速失败策略。消费者端只发起一次调用,若失败则立即报错。通常用于非幂等性...原创 2019-08-01 00:20:21 · 186 阅读 · 0 评论 -
Dubbo服务限流
为了防止某个消费者的QPS或是所有消费者的QPS总和突然飙升而导致的重要服务的失效,系统可以对访问流量进行控制,这种对集群的保护措施称为服务限流。Dubbo中能够实现服务限流的方式较多,可以划分为两类:直接限流与间接限流直接限流:通过对连接数量直接进行限制来达到限流的目的。(官方方案汇总) 间接限流:通过一些非连接数量设置来达到限制流量的目的。(我的偶像总结-Reythor雷)一、exe...原创 2019-08-03 00:13:08 · 9152 阅读 · 3 评论 -
Dubbo声明式缓存
为了进一步提高消费者对用户的响应速度,减轻提供者的压力,Dubbo提供了基于结果的声明式缓存。该缓存是基于消费者端的,所以使用很简单,只需修改消费者配置文件,与提供者无关一、创建消费者07-consumer-cache(1) 创建工程直接复制02-consumer-zk工程,并命名为07-consumer-cache(2) 修改消费者配置文件类级别方法级别(3)...原创 2019-08-03 12:08:14 · 912 阅读 · 0 评论 -
Dubbo服务分组
服务分组与多版本控制的使用方式几乎是相同的,只要将version替换为group即可。但使用目的不同。使用版本控制的目的是为了升级,将原有老版本替换掉,将来不再提供老版本的服务,所以不同版本间不能出现相互调用。而分组的目的则不同,其也是针对相同接口,给出了多种实现类。但不同的是,这些不同实现并没有谁替换掉谁的意思,是针对不同需求,或针对不同功能模块所给出的不同实现。这些实现所提供的服务是并存的,所...原创 2019-07-30 00:49:04 · 2695 阅读 · 0 评论 -
Dubbo多协议支持
除了Dubbo服务暴露协议Dubbo协议外,Dubbo框架还支持另外8种服务暴露协议:RMI协议、Hessian协议、HTTP协议、WebService协议、Thrift协议、Memcached协议、Redis协议、Rest协议。但在实际生产中,使用最多的就是Dubbo服务暴露协议(1) dubbo协议小数据大并发使用Dubbo,大数据小并发使用其它Dubbo默认传输协议 连接个数:...转载 2019-07-30 01:00:41 · 920 阅读 · 0 评论 -
Dubbo直连方式
一、简介官网:http://dubbo.apache.org/zh-cn/Dubbo是[1]阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和[2]Spring框架无缝集成。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发...原创 2019-07-21 10:47:09 · 11318 阅读 · 0 评论 -
Dubbo使用Zookeeper注册中心
在生产环境下使用最多的注册中心为Zookeeper,当然,Redis也可以做注册中心一、创建提供者02-provider-zk(1) 导入依赖https://blog.csdn.net/u012965203/article/details/96700308复制前面的提供者工程01-provider,并更名为02-provider-zk。修改pom文件,并在其中导入Zookeeper...原创 2019-07-21 18:34:53 · 269 阅读 · 0 评论 -
Dubbo应用到web工程
一、创建提供者03-provider-web(1) 创建工程创建Maven的web工程,然后创建实现类。(2) 导入依赖Spring的版本为4.3.16需要的依赖有:dubbo2.7.0版本依赖 zk客户端curator依赖 servlet与jsp依赖 spring相关依赖 spring需要的commons-logging依赖 自定义00-api依赖<...原创 2019-07-21 21:33:06 · 936 阅读 · 0 评论 -
Dubbo服务调用超时
服务降级的发生,其实是由于消费者调用服务超时引起的,即从发出调用请求到获取到提供者的响应结果这个时间超出了设定的时限。默认服务调用超时时限为1秒。可以在消费者端与提供者端设置超时时限。一、创建提供者工程06-provider-timeout(1) 创建工程复制02-provider-zk工程,并重命名为06-provider-timeout(2) 修改依赖这里不再需要00-ap...原创 2019-08-02 23:09:14 · 12416 阅读 · 0 评论 -
Dubbo管理控制台
2019年初,官方发布了Dubbo管理控制台0.1版本。结构上采取了前后端分离的方式,前端使用Vue和Vuetify分别作为Javascript框架和UI框架,后端采用Spring Boot框架一、下载Dubbo管理控制台的下载地址为:https://github.com/apache/dubbo-admin二、配置在下载的zip文件的解压目录的dubbo-admin-serv...原创 2019-07-21 22:10:53 · 10398 阅读 · 1 评论 -
Dubbo多种协议使用
对于多协议的用法有两种,一种是同一个服务支持多种协议,一种是不同的服务使用不同的协议。首先来看“同一服务支持多种协议”的用法一、同一服务支持多种协议(1)修改提供者配置文件在提供者中要首先声明新添加的协议,然后在服务<dubbo:service/>标签中再增加该新的协议。若不指定,默认为dubbo协议这里需要理解这个服务暴露协议的意义。其是指出,消费者若要连接当前...转载 2019-07-30 21:57:29 · 2086 阅读 · 0 评论 -
Dubbo服务降级
一、简介解决高并发的三把利器:降级、限流、缓存(1) 什么是服务降级服务降级,当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务有策略的降低服务级别,以释放服务器资源,保证核心任务的正常运行(2) 服务降级方式能够实现服务降级方式很多,常见的有如下几种情况:部分服务暂停 全部服务暂停 随机拒绝服务 部分服务延迟(3) 服务降级与Mock机制Dub...原创 2019-08-01 22:38:47 · 3271 阅读 · 0 评论