自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 27. Dubbo原理解析-管理控制台

Dubbo的dubbo-admin模块是后台管理系统,它的MVC框架式基于webx3的,webx是阿里巴巴开源出来基于页面驱动的mvc框架, webx在阿里内部广泛使用。Webx是基于turbine发展而来逐渐成为一个功能强大扩展性强的mvc框架,利用约定大于配置原则,虽说使用简单,但是也有很多潜在规则在里面。Webx作为除了阿里以外一个小众框架学习起来还是很有成本的,再说dubbo中又对we

2014-12-12 17:35:26 6523

原创 26. Dubbo原理解析-监控

Dubbo发布代码中,自带了一个简易的监控中心实现。对于一般的小业务这个监控中心应该能够满足需求,对于那些大业务量的大公司一般都会有自己的监控中心,更加丰富的功能如常用的报警短信通知等等。这章讲解分析使得读者能够了解一般的监控中心实现,也使得有自己接入监控中心需求的大概知道如何集成自己的监控中心实现。下面我们就以dubbo自带的监控中心开始讲解。 监控中心1.  监控中心启动,我们先看

2014-12-12 17:17:51 9205 2

原创 21. Dubbo原理解析-通信层之请求响应活动图

服务消费方发起远程调用的底层通信 服务提供方接收请求并响应的底层通信

2014-12-06 19:22:56 4379

原创 25. Dubbo原理解析-telnet

Dubbo提供了telnet命令去查看服务功能 这里主要介绍一下dubbo实现telnet命令的整体实现  当服务器端接收到的消息类型是string的时候回调用到TelnetHandler的telent方法中 TelnetHanlderAdpter类会从接收的字符串解析出命令,根据dubbo的spi扩展机制获取对应的TelnetHandler实现

2014-12-03 20:52:22 4785

原创 24. Dubbo原理解析-编码解码之编码解码流程

这里把ExchangeCodec和DubboCodec放一起来讲解dubbo传输的底层协议组成以及它的编码解码过程。 传输协议协议格式协议头 :header 是16个字节的定长数据   =  2 //short类型的MAGIC = (short) 0xdabb+ 1 //一个字节的消息标志位,用来表示消息是request还是//response,twoway还是oneway

2014-12-03 20:42:16 5619

原创 23. Dubbo原理解析-编码解码之Codec2接口定义

Dubbo的远程调用需要对传输的数据进行编码解码,dubbo的Codec2接口定义了编码解码规范,与废弃的接口Codec相比,Codec2没有依赖jdk的输入输出流, 以dubbo的ChannelBuffer为核心便于更好的整合@SPIpublic interface Codec2 {    @Adaptive({Constants.CODEC_KEY})    void en

2014-12-03 20:39:59 4239 1

原创 22. Dubbo原理解析-编码解码之Serialization接口定义

序列化:dubbo提供了一系列的序列化反序列化对象工具。Serialization接口定义@SPI("hessian2")public interface Serialization {    byte getContentTypeId();    String getContentType();    @Adaptive    ObjectOutput

2014-12-03 20:36:01 6074

原创 20. Dubbo原理解析-通信层之引用服务

二:消费方引用服务服务调用方在引用服务refer时候创建对服务提供者的链接:构建DubboInvoker时候需要获取ExchangeClient作为构造器参数传入Exchangers.connect(url, requestHanler)à HeaderExchanger.connect(url,exhangeHandler)       构建HeaderExchangeClient,

2014-12-03 20:18:04 4785

原创 19. Dubbo原理解析-通信层之暴露服务

Dubbo的整个远程通信层由exchange,transport, serialize exchange,信息交换层,封装请求响应模式,同步转异步,以Request, Response为中心,扩展接口为Exchanger, ExchangeChannel, HeaderExchangeHandler,ExchangeClient, ExchangeServer transport,

2014-12-03 20:12:39 10263 2

原创 18. Dubbo原理解析-服务调用

服务消费方发起请求当服务的消费方引用了某远程服务,服务的应用方在spring的配置实例如下:dubbo:referenceid="demoService"interface="com.alibaba.dubbo.demo.DemoServ ice" />demoService实例其实是代理工厂生产的代理对象(大家可以参考代理那部分生成的伪代码),在代码中调用demoServ

2014-12-03 20:04:01 7678

原创 17. Dubbo原理解析-集群&容错之负载均衡

LoadBalance负载均衡, 负责从多个 Invokers中选出具体的一个Invoker用于本次调用,调用过程中包含了负载均衡的算法,调用失败后需要重新选择LoadBalance接口定义@SPI(RandomLoadBalance.NAME)public interface LoadBalance{@Adaptive("loadbalance") Invoker sel

2014-12-03 19:43:42 8825 3

原创 16. Dubbo原理解析-集群&容错之router路由服务

Router服务路由, 根据路由规则从多个Invoker中选出一个子集AbstractDirectory是所有目录服务实现的上层抽象, 它在list列举出所有invokers后,会在通过Router服务进行路由过滤。Router接口定义public interface Router extendsComparable {    URL getUrl(); List> route

2014-12-03 19:41:46 7703 1

原创 15. Dubbo原理解析-集群&容错之目录服务Directory

集群目录服务Directory, 代表多个Invoker, 可以看成List,它的值可能是动态变化的比如注册中心推送变更。集群选择调用服务时通过目录服务找到所有服务Directory的接口定义public interfaceDirectory extends Node {    //服务类型ClassgetInterface();//列出所有服务的可执行对象List>l

2014-12-03 19:38:50 5086

原创 14. Dubbo原理解析-集群&容错之Cluster

Dubbo作为一个分布式的服务治理框架,提供了集群部署,路由,软负载均衡及容错机制 下图描述了dubbo调用过程中的对于集群,负载等的调用关系。 Cluster将Directory中的多个Invoker伪装成一个Invoker, 对上层透明,包含集群的容错机制Cluster接口定义@SPI(FailoverCluster.NAME)public interf

2014-12-03 19:32:52 12467 2

原创 13. Dubbo原理解析-注册中心之Zookeeper协议注册中心

下面我们来看下开源dubbo推荐的业界成熟的zookeeper做为注册中心, zookeeper是hadoop的一个子项目是分布式系统的可靠协调者,他提供了配置维护,名字服务,分布式同步等服务。对于zookeeper的原理本文档不分析,后面有时间在做专题。zookeeper注册中心Zookeeper对数据存储类似linux的目录结构,下面给出官方文档对dubbo注册数据的存储示例

2014-12-02 20:39:16 22427 4

原创 12. Dubbo原理解析-注册中心之基于dubbo协议的简单注册中心实现

服务注册与发现的中心,服务的提供者将服务发布到注册中心,服务的使用着到注册中引用服务。Dubbo的注册中心提供了多种实现,其实现是基于dubbo的spi的扩展机制的,使用着可以直接实现自己的注册中心。@SPI("dubbo")public interface RegistryFactory {   /**    * 连接注册中心.    * 连接注册中心需处理契约

2014-12-02 20:33:40 18747 5

原创 11. Dubbo原理解析-注册中心之接口介绍

服务注册与发现的中心,服务的提供者将服务发布到注册中心,服务的使用着到注册中引用服务。Dubbo的注册中心提供了多种实现,其实现是基于dubbo的spi的扩展机制的,使用着可以直接实现自己的注册中心。@SPI("dubbo")public interface RegistryFactory {   /**    * 连接注册中心.    * 连接注册中心需处理契约

2014-12-02 20:28:27 6547 1

原创 10. Dubbo原理解析-Listener & filter

ListenerExporterListener: dubbo在服务暴露(exporter)以及销毁暴露(unexporter)服务的过程中提供了回调窗口,供用户做业务处理。ProtocolListenerWrapper在暴露过程中构建了监听器链public class ProtocolListenerWrapper implements Protocol {   public

2014-12-01 19:50:50 19363 1

原创 9. Dubbo原理解析-服务引用

服务引用是服务的消费方向注册中心订阅服务提供方提供的服务地址后向服务提供方引用服务的过程。服务的应用方在spring的配置实例如下:dubbo:referenceid="demoService"interface="com.alibaba.dubbo.demo. DemoService"/>如上配置spring在容器启动的时候会解析自定义的schema元素转换成dubbo内部数

2014-12-01 19:40:49 8205

原创 8. Dubbo原理解析-服务发布

服务发布是服务提供方向注册中注册服务过程,以便服务消费者从注册中心查阅并调用服务。服务发布方在spring的配置文件中配置如下:上面是在spring中配置的服务的具体实现,是spring中的一个普通的bean上面的配置spring容器在启动的过程中会解析自定义的schema元素dubbo转换成实际的配置实现ServiceBean ,并把服务暴露出去。Servic

2014-12-01 19:23:04 12884 3

原创 7. Dubbo原理解析-与spring融合

Spring中bean的定义可以通过编程,可以定义在properties文件,也可以定义在通过xml文件中,用的最多的是通过xml形式,由于xml格式具有很好的自说明便于编写及维护。对于xml的文档结构、数据定义及格式验证可以通过DTD和Schema, 在spring2.0之前采用的是DTD,在spring2.0之后采用Schema。使用Schema方式使得spring更加便于与第三方进行集成以及

2014-12-01 19:03:00 8112

服务治理中间件 dubbo原理解析

此文档是从学习dubbo源码过程中的笔记中整理出来的,由于时间及能力原因,理解有误之处还请谅解,希望对大家学习使用dubbo有所帮助。

2015-03-08

消息中间件 rocketmq原理解析

此文档是从学习rocketmq源码过程中的笔记中整理出来的,由于时间及能力原因,理解有误之处还请谅解,希望对大家学习使用rocketmq有所帮助。

2015-03-08

服务治理中间件dubbo原理解析

此文档是从学习dubbo源码过程中的笔记中整理出来的,由于时间及能力原因,理解有误之处还请谅解,希望对大家学习使用dubbo有所帮助。

2015-02-18

消息中间件rocketmq原理解析

此文档是从学习rocketmq源码过程中的笔记中整理出来的,由于时间及能力原因,理解有误之处还请谅解,希望对大家学习使用rocketmq有所帮助。

2015-02-18

rocketmq原理解析

此文档是从学习rocketmq源码过程中的笔记中整理出来的,由于时间及能力原因,理解有误之处还请谅解,希望对大家学习使用rocketmq有所帮助。 Rocketmq是阿里基于开源思想做的一款产品,代码托管于github上,要想学好用好rocketmq请从https://github.com/alibaba/RocketMQ获取最权威的文档、问题解答、原理介绍等。

2015-02-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除