lack的专栏

the quieter you become,the more you are able to hear

zookeeper源码 — 三、集群启动—leader、follower同步

zookeeper集群启动的时候,首先读取配置,接着开始选举,选举完成以后,每个server根据选举的结果设置自己的角色,角色设置完成后leader需要和所有的follower同步。上面一篇介绍了leader选举过程,这篇接着介绍启动过程中的leader和follower同步过程。 本文结构如下:...

2019-05-06 00:25:09

阅读数 31

评论数 0

zookeeper源码 — 二、集群启动—leader选举

上一篇介绍了zookeeper的单机启动,集群模式下启动和单机启动有相似的地方,但是也有各自的特点。集群模式的配置方式和单机模式也是不一样的,这一篇主要包含以下内容: 概念介绍:角色,服务器状态 服务器组件启动 leader选举 概念介绍:角色,服务器状态 集群模式会有多台serv...

2019-04-26 00:43:24

阅读数 29

评论数 0

zookeeper源码 — 一、单机启动

zookeeper一般使用命令工具启动,启动主要就是初始化所有组件,让server可以接收并处理来自client的请求。本文主要结构: main入口 配置解析 组件启动 main入口 我们一般使用命令行工具来部署zk server,zkServer.sh,这个脚本用来启动停止server,通过...

2019-04-23 00:29:54

阅读数 28

评论数 0

RocketMQ源码 — 十一、 RocketMQ事务消息

分布式事务是一个复杂的问题,rmq实现了事务的最终一致性,rmq保证本地事务成功消息一定会发送成功并被成功消费,如果本地事务失败了,消息不会被发送。 rmq事务消息的实现过程为: producer发送half消息 broker确认half消息,并通知producer,表示消息已经成功发送到b...

2018-05-24 23:48:39

阅读数 436

评论数 3

RocketMQ源码 — 十、 RocketMQ顺序消息

RocketMQ本身支持顺序消息,在使用上发送顺序消息和非顺序消息有所区别 发送顺序消息 SendResult sendResult = producer.send(msg, new MessageQueueSelector() { @Override public Messa...

2018-05-23 00:38:29

阅读数 213

评论数 0

RocketMQ源码 — 九、 RocketMQ延时消息

RocketMQ源码 — 九、 RocketMQ延时消息 上一节消息重试里面提到了重试的消息可以被延时消费,其实除此之外,用户发送的消息也可以指定延时时间(更准确的说是延时等级),然后在指定延时时间之后投递消息,然后被consumer消费。阿里云的ons还支持定时消息,而且延时消息是直接指定延时...

2018-05-10 00:09:17

阅读数 1470

评论数 0

RocketMQ源码 — 八、 RocketMQ消息重试

RocketMQ的消息重试包含了producer发送消息的重试和consumer消息消费的重试。 producer发送消息重试 producer在发送消息的时候如果发送失败了,RocketMQ会自动重试。 private SendResult sendDefaultImpl( M...

2018-05-08 22:33:18

阅读数 1485

评论数 1

RocketMQ源码 — 七、 RocketMQ高可用(2)

上一篇说明了RocketMQ怎么支持broker集群的,这里接着说RocketMQ实现高可用的手段之一——冗余。 RocketMQ部署的时候一个broker set会有一个mater和一个或者多个slave,salve起到的作用就是同步master存储的的消息,并且会接收部分consumer读取...

2018-05-06 16:14:41

阅读数 91

评论数 0

RocketMQ源码 — 六、 RocketMQ高可用(1)

高可用究竟指的是什么?请参考:关于高可用的系统 RocketMQ做了以下的事情来保证系统的高可用 多master部署,防止单点故障 消息冗余(主从结构),防止消息丢失 故障恢复(本篇暂不讨论) 那么问题来了: 怎么支持多broker的写? 怎么实现消息冗余? 下面分开说明这两个问...

2018-05-05 14:54:42

阅读数 153

评论数 0

Java代码风格和在idea中的一些设置

源文件基本设置 1. 文件名 驼峰标识,.java结尾 2. 编码 统一为UTF-8 Transport…可以解决property文件不能正常显示为中文的问题 3. 特殊字符 尽量使用转义字符(\t, \n等),而不是八进制的(\012)或者Unicode转义(\u00...

2018-04-03 00:18:53

阅读数 1054

评论数 0

dubbo扩展http协议后FullGC

问题 dubbo内部定制的版本中,在处理大于10K的包的时候,会出现内存溢出的现象 原因是我们在定制dubbo http协议的时候,使用了jboss包里面的HttpRequestDecoder的http decoder方法来解析http协议内容 该方法在解析非http协议的大内容时,会出现内存溢出...

2018-02-28 09:14:22

阅读数 115

评论数 0

dubbo源码—service reply

dubbo通过netty将请求发送到provider的时候,provider之前已经启动好的NettyServer监听指定端口的时候会收到来自consumer的请求,将通过网络发送来的二进制编码成Request交给上层处理。dubbo从Request中取出调用信息,找到之前的Invoker,然后经...

2018-02-28 09:14:19

阅读数 79

评论数 0

dubbo源码—service invoke

dubbo的远程调用过程是怎么样的? dubbo远程过程调用经过了那些处理? 发起远程调用的时候究竟传了什么数据给provider? 要解决这些问题,欢迎一起探讨走进dubbo源码栏目。 在service reference中说了consumer端发起调用的时候使用的是远程服务的本地代理,发起调用...

2018-02-28 09:14:16

阅读数 841

评论数 1

dubbo源码—service reference

service reference 在编写好服务之后,dubbo会将服务export出去,这个时候就可以编写consumer来调用这个服务了。dubbo作为一个rpc框架,使用者使用远程服务和使用本地服务是类似的,不用关心远程服务在哪里,怎么引用的,因为dubbo包含了自动发现和引用服务的功能。 ...

2018-02-28 09:14:13

阅读数 106

评论数 0

dubbo源码—service export

在应用编写好服务并进行之后,dubbo负责将服务export出去,dubbo export服务的时候主要做了以下几件事: 将服务export到本地(根据scope的配置) 创建Invoker(启动本地NettyServer,监听指定端口,等待请求) 注册provider的信息到registry,...

2018-02-28 09:14:11

阅读数 243

评论数 0

dubbo源码—SPI

Java中的SPI SPI,Service Provider Interface,java中提供的一种使程序可扩展的方式,系统定义好接口规范,供其他服务提供方实现,服务提供方将自己jar包META-INF/services下新建一个以接口全名称定义的文件,里面内容写上自己服务的实现的类名,每一行代...

2018-02-28 09:14:08

阅读数 87

评论数 0

dubbo源码—dubbo自定义spring xml标签

dubbo为了和spring更好的集成,提供了一些xml配置标签,也就是自定义标签 spring自定义标签 spring自定义标签的方式如下: 设计配置属性和JavaBean 编写xsd文件,校验xml属性和便于编辑器提示 编写NamespaceHandler和BeanDefinitionPar...

2018-02-28 09:14:05

阅读数 73

评论数 0

dubbo源码—dubbo简介

dubbo是一个RPC框架,应用方像使用本地service一样使用dubbo service。dubbo体系架构 上图中的角色: 最重要的是consumer、registry和provider consumer:服务调用者 provider:服务提供者 registry:供provider注册服...

2018-02-28 09:14:02

阅读数 118

评论数 0

leetcode — reorder-list

/** * Source : https://oj.leetcode.com/problems/reorder-list/ * * Given a singly linked list L: L0→L1→…→Ln-1→Ln, * reorder it to: L0→Ln→L1→Ln-1→L...

2018-02-28 09:13:59

阅读数 47

评论数 0

leetcode — linked-list-cycle

/** * Source : https://oj.leetcode.com/problems/linked-list-cycle/ * * Given a linked list, determine if it has a cycle in it. * * Follow up: *...

2018-02-28 09:13:57

阅读数 63

评论数 0

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