自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

中间件兴趣圈

主打成体系剖析java中间件,已发布RocketMQ、Kafka、Dubbo、Sentinel、Canal、ElasticJob、ElasticSearch等15个专栏。

  • 博客(12)
  • 资源 (5)
  • 收藏
  • 关注

原创 RocketMQ事务消息实战

   我们以一个订单流转流程来举例,例如订单子系统创建订单,需要将订单数据下发到其他子系统(与第三方系统对接)这个场景,我们通常会将两个系统进行解耦,不直接使用服务调用的方式进行交互。其业务实现步骤通常为:    1、A系统创建订单并入库。    2、发送消息到MQ。    3、MQ消费者消费消息,发送远程RPC服务调用,完成订单数据的同步。    1、方案一    方案弊端:  ...

2018-07-31 19:19:05 41500 25

原创 RocketMQ源码分析之事务消息实现原理下篇-消息服务器Broker提交回滚事务实现原理

   本文将重点分析RocketMQ Broker如何处理事务消息提交、回滚命令,其核心实现就是根据commitlogOffset找到消息,如果是提交动作,就恢复原消息的主题与队列,再次存入commitlog文件进而转到消息消费队列,供消费者消费,然后将原预处理消息存入一个新的主题RMQ_SYS_TRANS_OP_HALF_TOPIC,代表该消息已被处理;回滚消息与提交事务消息不同的是,提交事务消...

2018-07-29 23:11:37 2798

原创 RocketMQ源码分析之RocketMQ事务消息实现原理中篇----事务消息状态回查

   上节已经梳理了RocketMQ发送事务消息的流程(基于二阶段提交),本节将继续深入学习事务状态消息回查,我们知道,第一次提交到消息服务器,消息的主题被替换为RMQ_SYS_TRANS_HALF_TOPIC,当执行本地事务,如果返回本地事务状态为UN_KNOW时,第二次提交到服务器时将不会做任何操作,也就是消息还存在与RMQ_SYS_TRANS_HALF_TOPIC主题中,并不能被消息消费者消...

2018-07-29 21:33:51 5802 4

原创 RocketMQ源码分析之RocketMQ事务消息实现原理上篇

   根据上节Demo示例,发送事务消息的入口为:TransactionMQProducer#sendMessageInTransaction:public TransactionSendResult sendMessageInTransaction(final Message msg, final Object arg) throws MQClientException { ...

2018-07-28 18:20:32 7551 2

原创 RocketMQ源码分析之从官方示例窥探RocketMQ事务消息实现基本思想

   RocketMQ4.3.0版本开始支持事务消息,本节开始将剖析事务消息的实现原理,首先将从官方给出的Demo实例入手,以此通往RocketMQ事务消息的世界中。    官方版本未发布之前,从apache rocketmq第一个版本上线后,代码中存在者与事务消息相关的代码,例如COMMIT、ROLLBACK、PREPARED, 网上对于事务消息的“声音”基本上是使用类似二阶段提交,消息系统标...

2018-07-28 12:37:42 7632 7

原创 源码分析Dubbo网络通信篇NettyClient

    在源码分析Dubbo通讯篇之网络核心类一文中已给出Dubbo netty client的启动流程,如下图:     以Dubbo协议为例,DubboProtocol#refer中,在创建Invoker时,通过getClient方法,开始Client(连接的)创建过程,先重点看一下:private ExchangeClient[] getClients(URL url) { ...

2018-07-25 19:32:03 2367

原创 源码分析Dubbo网络通信篇NettyServer、HeaderExchangeServer

    本文主要分析一下NettyServer,HeaderExchangeServer实现细节。     1、NettyServer     NettyServer整个类图如下:     首先从全貌上大概看一下NettyServer对象所持有的属性:AbstractPeer     1、private final ChannelHandler handler : 事件...

2018-07-23 12:23:56 2571

原创 源码分析Dubbo网络通讯篇之NettyServer网络事件之线程池

    本文主要分析Dubbo线程池的构建过程,主要介绍官方文档中有关于ThreadPool的种类:     ● fixed : 固定大小线程池,启动时建立线程,不关闭,一致持有。(缺省)     ● cached :缓存线程池,空闲一分钟,线程会消费,需要时重新创建新线程。     ● limited :可伸缩线程池,但池中的线程数只会增长不...

2018-07-19 21:03:18 1888

原创 源码分析Dubbo网络通讯篇之NettyServer网络事件派发机制(Dispatch)

    本节将主要学习Dubbo是如何使用Netty来实现网络通讯的。     从官网我们得知,Dubbo协议是使用单一长连接来进行网络传输,也就是说服务调用方持久与服务提供者建立一条连接,所有的服务调用调用信息通过。     一条TCP连接进行传输,在网络层至少要考虑如下问题:     1、服务端,客户端网络通讯模型(线程模型)     2、传输(编码解码、序列化)。     3、服务...

2018-07-17 12:27:34 2820

原创 源码分析Dubbo网络通讯篇概要总结(类图一览、服务端、客户端网络构造流程一览)

从本节开始将开始深入学习Dubbo网络通讯的底层实现细节,在深入学习Dubbo网络模型时,首先应从整体上了解Dubbo的网络通讯模型、线程模型是怎样的?下图是Dubbo官方给出的线程模型: 涉及如下方面: 1)网络调用客户端。 2)网络调用服务端。 3)网络传输,编解码、序列化。 4)网络服务端转发模型、线程池。 下面给出与上述网络模型对应的详细类图: 上述类做一个简单的结束...

2018-07-12 12:18:51 2079

原创 源码分析Dubbo集群容错策略

前面的文章,已经单独对服务发现(Directory、RegistryDirectory)、路由机制(Router)、负载均衡机制(LoadBalance),本节将重点分析集群容错机制(AbstractClusterInvoker),AbstractClusterInvoker就是将上述机制融合在一起,整个集群容错中,上述组件扮演的角色见下图所示,本文将重点分析AbstractClusterInvo...

2018-07-08 23:18:17 2331

原创 源码分析Dubbo负载算法

Dubbo支持在服务调用方对服务提供者采用负载均衡算法,LoadBalance 接口定义如下:@SPI(RandomLoadBalance.NAME)public interface LoadBalance { /** * select one invoker in list. * * @param invokers invokers. *...

2018-07-06 12:47:10 2586

rocketmqpdf.zip

根据RocketMQ专栏整理的电子书籍,覆盖笔者运维千亿级消息流转的运维经验。

2021-04-28

rocketmq实战与源码分析.zip

由阿里巴巴根据[中间件兴趣圈]RocketMQ专栏文章,整理的两本电子书,总的来看主要从如下三部分进行展开: 1线上故障分析结合笔者日均消息流转千亿级别的消息集群的运维经验、网友的问题提问整理提取的精华。 2 源码分析篇主要是对RocketMQ4.4.0及其后续版本中的新加入的功能进行源码级别的剖析,主要包括ACL、消息轨迹、多副本。 3 认知篇主要展示笔者阅读源码的经验分享,以及如何以布道师的身份参与Apache顶级开源项目的经历。

2021-03-13

Netty实现私有协议,模仿dubbo单一长连接RPC服务调用,心跳检测机制源码

1、客户端与服务端基于单一长连接进行通信,客户端一条连接被多个线程使用。 2、实现私有协议 请求协议 协议头:4字节的请求序列号 2字节的请求类型 2字节数据包长度 数据部分: 服务调用:2字节请求服务名长度 若干字节请求服务名 2字节请求参数长度 若干字节参数 心跳包:数据部分无 响应信息 协议头:4字节的请求序列号 2字节的执行状态码 2字节数据长度 数据部分: 多字节的响应数据信息(data) 3、代码基于Netty5

2017-03-09

Twemproxy 0.4.1

Twemproxy 构建redis集群 twemproxy最新版本 0.4.1

2016-05-02

空空如也

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

TA关注的人

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