
Dubbo
dbqb007
Apache committer,熟悉中间件,微服务开发
展开
-
Dubbo融合Web Service教程
Web Service是一种传统的远程过程调用方式,它通过XML来定义服务信息和传输数据。Dubbo是一种分布式服务治理框架,它提供了服务注册与发现,负载均衡,远程调用等。Dubbo在进行服务调用时,默认使用Dubbo 自定义的协议,但也支持各种第三方协议,如rest,grpc,web service等。Dubbo提供了对Web Service的整合能力,主要是指可以将Web Service包装成Dubbo服务,因此提供了服务注册与发现,同时在提供者端可以让开发者像发布Dubbo服务那样,很简便地发布We原创 2020-07-19 21:02:56 · 766 阅读 · 0 评论 -
图解Dubbo提供者部分重要的类关系
Dubbo的提供者发布服务是一个比较复杂的过程。概括起来说,主要有以下几步:1.解析配置2.导出服务解析服务的过程略过。本文主要分析导出服务的过程,其中有一些比较重要的类,它们之间通过代理模式和装饰器模式,巧妙组合在一起,实现了Dubbo的提供者的功能,本文通过画图来解释它们。导出服务又可以分为以下几步:生成实现类的包裹对象即代理对象假设我们定义了一个远程调用的接口,那么在提供者端就需要一个实现类来实现这个接口。同时为了实现监控,回调等功能,当请求到达时,不能简单根据类名和方法名去通过反射调用实原创 2020-06-25 23:27:05 · 432 阅读 · 0 评论 -
Dubbo Ops条件路由实战
Dubbo的服务智能容错包括服务目录、服务路由和负载均衡这三个部分。服务目录的作用是存储一个接口的invoker的集合,并且随着配置信息的更新而自动更新。而服务路由则是从服务目录的involer集合中,根据路由规则筛选出一个子集。而负载均衡则是在服务路由筛选出的子集中去做负载均衡。服务路由不是在一个服务的提供者端或者消费者端进行配置的,而是通过在配置中心中写入配置信息,消费者会自动接收到通知。...原创 2019-02-17 00:55:19 · 1918 阅读 · 0 评论 -
Dubbo使用Apollo作为配置中心实战
一.Dubbo支持Apollo的介绍Apollo是携程开源的一款配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。Dubbo目前的最新版本2.7.0将过去单一的注册中心拆分成了注册中心、元数据中心和配置中心。其中配置中心起到的作用之一,就是将配置外部化,也就是将配置从应用内部剥离出去,可以在一...原创 2019-03-17 15:18:25 · 9188 阅读 · 4 评论 -
Dubbo/Netty中时间轮算法的原理
在Dubbo中,为增强系统的容错能力,在很多地方需要用到只需进行一次执行的任务调度。比如RPC调用的超时机制的实现,消费者需要各个RPC调用是否超时,如果超时会将超时结果返回给应用层。在Dubbo最开始的实现中,是采用将所有的返回结果(DefaultFuture)都放入一个集合中,并且通过一个定时任务,每隔一定时间间隔就扫描所有的future,逐个判断是否超时。这样的实现方式实现起来比较简单,但...原创 2019-06-02 16:59:16 · 2953 阅读 · 0 评论 -
Dubbo中InternalThreadLocal源码分析
在Java中,ThreadLocal是实现线程安全的一种手段,它的作用是对于同一个ThreadLocal变量,在每一个线程中都有一个副本,当修改任何一个线程的变量时,不会影响到其他线程。它通过在每一个Thread中存储一个类似于map的结构,以ThreadLocal变量为key,变量值为value。Dubbo在RPC调用的上下文中,需要借助ThreadLocal保存上下文。它从Netty中借鉴了...原创 2019-07-10 01:10:40 · 2765 阅读 · 0 评论 -
Dubbo服务端服务发布(一)Invoker创建
在Dubbo的服务发布过程中,Invoker链的构造是一个重要的步骤,Invoker代表的是一个可以调用的服务的接口。它的定义如下:public interface Invoker<T> extends Node { /** * get service interface. * * @return service interface. ...原创 2019-07-16 17:30:57 · 814 阅读 · 0 评论