0xTrustTryEP

Just do it, deeply...

Follow me on GitHub

Zookeeper框架设计及源码解读一(Zookeeper启动)

Dec 17, 2020 by valuewithTime

引言 从Hadoop的高可用环境,接触到Zookeeper。Zookeeper在高可用集群架构中扮演者重要的角色。除此之外,在微服务盛行的当前,Dubbo默认采用Zookeeper最为注册中心。TBSchedule使用它存储定时任务,控制任务的并发执行。同时Zookeeper作为Raft 一致性协议的经典之作,接下来我们将一探究竟。 目录 概要框架设计 源码分析 ...

Dubbo框架设计及源码解读

Nov 25, 2020 by valuewithTime

引言 随着互联网应用体量不断的增加,为了对应大量用户访问的体验效果,及提供应用的可用性,微服务应运而生,微服务使应用的业务具有更高的内聚性,同时对整体应用进行服务化的解耦;微服务之间除了通过异步的MQ进行通信,常用的还有基于同步的RPC通知机制,比如基于HTTP的GRPC, BRPC及在国内使用比较广泛的Dubbo。一致在使用DUBOO,对其中的功能组件有大致的了解,本计划看一下源码的,一致...

Dubbo框架设计源码解读五(消息编解码器)

Nov 25, 2020 by valuewithTime

引言 Netty服务端是基于经典的bootstrap,事件,worker, 编解码器,消息处理器的实现。netty处理器实际为一个共享的SimpleChannelHandler, 所有操作委托内部通道处理器DecodeHandler。DecodeHandler在接受消息后,解码相应的消息,将交由内部的HeaderExchangeHandler处理。HeaderExchangeHandler,...

Dubbo框架设计源码解读四(Dubbo基于Netty的传输器Transport)

Nov 23, 2020 by valuewithTime

引言 Dubbo协议是消费者和服务者通信的基础,包括服务的调用。注册器协议中,有如下一个功能,导出服务到本地, 实际委托的相应的协议,比如Dubbo协议DubboProtocol的export操作。注册器目录,当前监听注册器节点变化是,重新索引服务,在转换URL为Invoker,实际委托的相应的协议,比如Dubbo协议DubboProtocol的 refer操作。 dubbo协议的导出服务,...

Dubbo框架设计源码解读三(Dubbo协议,服务导出,引用)

Nov 19, 2020 by valuewithTime

引言 注册协议,导出服务主要有注册服务和订阅服务。注册服务,实际是将基于Dubbo协议的服务URL写到ZK上,如何在注册的过程中,由于Dubbo自身机制导致的注册失败,将加入的失败注册集,并有定时钟,进行重试注册。订阅服务,监听服务提供者的节点路径。消费者注册到ZK上的订阅服务节点上,具体的订阅委托给目录服务。 注册目录服务依赖于注册器,消费者从注册器获取服务提供者,实际为从注册目录服务获...

Dubbo框架设计源码解读二(注册器,服务注册,订阅)

Nov 19, 2020 by valuewithTime

引言 dubbo框架主要包括消息层,传输层,协议层。消息层提供消费者调用服务请求消息、服务提供方处理 结果响应消息的编解码;传输层主要建立消费者和服务者的通信通道,传输服务请求响应数据;协议层首先是基于相关协议将服 提供者,和消费者通过export暴露出去,即注册的Registry中,消费者通过Registry订阅响应的服务提供者,消费者发现有服务 提供者,则与服务提供者建立连接。服务提供...

Dubbo框架设计源码解读一(服务和引用bean初始化)

Nov 17, 2020 by valuewithTime

引言 随着互联网应用体量不断的增加,为了对应大量用户访问的体验效果,及提供应用的可用性,微服务应运而生,微服务使应用的业务具有更高的内聚性,同时对整体应用进行服务化的解耦;微服务之间除了通过异步的MQ进行通信,常用的还有基于同步的RPC通知机制,比如基于HTTP的GRPC, BRPC及在国内使用比较广泛的Dubbo。一致在使用DUBOO,对其中的功能组件有大致的了解,本计划看一下源码的,一致...

incubator-gossip框架设计

Oct 20, 2020 by valuewithtime

引言 Gossip protocol 也叫 Epidemic Protocol (流行病协议),实际上它还有很多别名,比如:“流言算法”、“疫情传播算法”等。很多知名的 P2P 网络或区块链项目,比如 IPFS,Ethereum 等,都使用了 Kadmelia 算法,而大名鼎鼎的 Bitcoin 则是使用了 Gossip 协议来传播交易和区块信息。实际上,只要仔细分析一下场景就知道,Eth...

时间的价值

Sep 30, 2020 by valuewithTime

谈时间的价值 记得上中学的时候,每当写作文,感慨时间过得真快时,都会用白驹过隙去形容,然而对时间的重要性及意义,没有过多的体会。 今以三十而立,暂无房无车,有妻、子陪伴。茫然身已过3分有余,只能苍白的感叹,时间过得真TM的快;彼儿时,戏水与南大河, 躬耕与北地的场景浮现与眼前。从初中学线性集合,到高中的立体集合,从二维发展到三维,对万物有了更多的认知。那存不存在 四维呢? 时间与当下的关系...

XXL-JOB分布式任务调度平台

Sep 7, 2020 by valuewithTime

引言 当我们提起定时任务时,我们会想起,JDK的[Timer][]和定时调度框架[Quartz][], Quartz一般与Spring家族框架结合使用。Quartz的任务存储有两种形式,一种是存储的内存, 但是当应用重启是,定时任务将会丢失,另一种方式为数据库存储,数据库存储任务,解决了应用重启引起的任务丢失问题。无论是Quartz单独使用,还是与Spring的集成,应用一旦启动, 我们将无...