自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 第一章 NameServer

一、NameServer包下面总共就三个模块1、kvconfig模块,处理key,value类型的配置,目前只使用了了ORDER_TOPIC_CONFIG key2、processor模块,处理来自consumer,producer,broker的请求3、routeinfo模块,处理broker集群信息,broker与topic, topic的队列信息二、整合1、通过NamesrvControlle

2017-09-22 14:21:33 406

原创 第四章 Zookeeper中follower的服务流程

Zookeeper集群中,分为三种角色,Leader,follower,observer,跟随者转发写请求到leader,leader发起 proposal 通过同步链接 发送给 follower,follower接收后响应 同意到leader,如果通过议案(一般情况是超过半数follower就行)则会下发commit到跟随者同步数据。

2017-07-28 18:04:49 1473

原创 第三章 QuorumPeer 选举

一、选举模块的创建。 QuorumPeer的start方法中,有调用startLeaderElection来启动选举相关的功能,并且设置默认leader为自身。 synchronized public void startLeaderElection() { try { currentVote = new Vote(myid, getLastLoggedZx

2017-07-07 11:44:48 601 1

原创 第二章 zookeeper启动

众所周知,zk可以运行在两种模式,单机模式和集群模式。那么这两种分别是怎么启动的呢?其实在ZK的代码中,有两个类型作为启动入口ZooKeeperServerMain中的main 方法, QuorumPeerMain 中的main方法。但是ZooKeeperServerMain只支持单机模式,而QuorumPeerMain能够同时支持单机和集群模式(单机模式下就调用ZooKeeperServe

2017-06-22 14:53:03 2847

原创 序言 写在Netty博客之前

Netty用了也有一段时间了,对于netty源码始终没有深入的阅读,知道了netty的线程机制,对于字节复制, 链式上下文还不是很熟悉,希望借写netty博客的机会,更多的了解netty框架,更多的接触Nio

2017-06-08 16:39:11 273

原创 zookeeper学习 第一章 序言

年初开始就想着有空看看zookeeper的代码,一直太懒没有开始看,终于闲的蛋疼的情况下,开始了看zk的过程。主要从几个角度分析zk的代码 1、启动流程,启动方式。 2、选举流程。 3、zkServer提供服务。 4、zkServer的处理器链 5、zk对节点数据的维护与同步。 6、watcher机制写下序言,既是整理下脉络,亦是督促自己能够完成博

2017-06-08 16:17:24 239

原创 第七章 Protocol

,通讯协议

2017-02-15 11:53:15 242

原创 第六章 Transporter

Transporter是dubbo抽象出的对于TCP链接的管理模块,其下通过Client,Server等接口来真正实现数据交互功能

2017-02-15 11:51:18 304

原创 第五章 Cluster和Loadbalance

负载均衡和集群高可用(在motan叫做HAStrategy)

2017-02-15 11:47:14 389

原创 第四章 Directory

1、Directory类图Directory是Dubbo对 集群获取可访问服务列表的一个抽象,共有两个实现类,StaticDirectory的子类是个测试类,RegistryDirectory 是对 通过注册中心获取可访问列表的Directory的实现,StaticDirectory是对多注册中心的封装。StaticDirectory中保存了多个集群的Invoker,ClusterInvoker会在

2017-02-15 11:45:32 438

原创 第二章 C和P,Invoker和Exporter

一、Consumer引用流程: 调用ReferenceConfig的get()方法,如果通过Spring启动,那么ReferenceBean实际上也是通过BeanFactory的getObject方法来调用父类型ReferenceConfig的get方法; 处理配置,包括dubbo.properties,dubbo.xml,dubbo注解等等。 如果有注册中心配置,通过

2017-02-15 11:43:09 1069

原创 第三章 RegistryService

1、RegistryService类图RegistryService是对注册功能映射成服务方法的抽象,如果想要实现自定义注册功能,可以通过实现该接口,并暴露成方法来实现(dubbo协议的注册中心就是如此)。Registry则是将RegistryService服务映射成可用的注册功能。 例如,如果想用SimpleRegistryService 做注册中心,那么可以暴露一个SimpleRegistry

2017-02-15 11:42:11 5142 2

原创 第一章 Dubbo风格的SPI-ExtensionLoader

java原生SPI1、原生SPI的使用方式路径 META-INF/services 文件名:interface 完整限定名 文件内容: implement 完整限定名 public static Search newSearch() { Search search = null; ServiceLoader serviceLoader =

2017-01-19 22:19:50 646

原创 SpringMVC数据转换,数据绑定,数据验证流程分析

SpringMVC数据转换,数据绑定,数据验证流程分析一、SpringMVC的入口DispatcherServlet1.真正的调用handler的方法是在HandlerAdapter中进行的 protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throw

2017-01-13 10:55:31 1531 1

原创 Spring ApplicationContext 中的getBean方法的深入分析

Spring 中的ApplicationContext是如何取得Bean的

2016-01-13 18:00:17 16852 4

Spring在web下启动流程学习笔记

Spring学习笔记,主要是在tomcat环境下spring上下文的启动,初始化,bean配置的载入等

2015-12-23

空空如也

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

TA关注的人

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