Kafka Producer 异步发送消息居然也会阻塞?

2020-09-13
阅读 4 分钟
3.8k
Kafka 一直以来都以高吞吐量的特性而家喻户晓,就在上周,在一个性能监控项目中,需要使用到 Kafka 传输海量消息,在这过程中遇到了一个 Kafka Producer 异步发送消息会被阻塞的问题,导致生产端发送耗时很大。

图解 DataX 核心设计原理

2020-09-07
阅读 4 分钟
3.5k
DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源之间稳定高效的数据同步功能。

图解 K8s 核心概念和术语

2020-08-24
阅读 4 分钟
3.2k
我第一次接触容器编排调度工具是 Docker 自家的 Docker Swarm,主要解决当时公司内部业务项目部署繁琐的问题,我记得当时项目实现容器化之后,花在项目部署运维的时间大大减少了,当时觉得这玩意还挺新鲜的,原来自动化运维可以这么玩。后面由于工作原因,很久没碰过容器方面的知识了。最近在公司的数据同步项目中,需要...

Seata RPC 模块的重构之路

2020-08-14
阅读 6 分钟
2k
RPC 模块是我最初研究 Seata 源码开始的地方,因此我对 Seata 的 RPC 模块有过一些深刻研究,在我研究了一番后,发现 RPC 模块中的代码需要进行优化,使得代码更加优雅,交互逻辑更加清晰易懂,本着 “让天下没有难懂的 RPC 通信代码” 的初衷,我开始了 RPC 模块的重构之路。

Spring 异步实现原理与实战分享

2020-06-18
阅读 7 分钟
1.9k
最近因为全链路压测项目需要对用户自定义线程池 Bean 进行适配工作,我们知道全链路压测的核心思想是对流量压测进行标记,因此我们需要给压测的流量请求进行打标,并在链路中进行传递,那么问题来了,如果项目中使用了多线程处理业务,就会造成父子线程间无法传递压测打标数据,不过可以利用阿里开源的 ttl 解决这个问题。

我参与 Seata 开源项目的一些感悟

2020-05-18
阅读 3 分钟
1.8k
丁老师在他的知识星球邀请我回答以下一个问题: 我觉得这个问题非常有意思,姑且把它贴到公众号这里,与大家分享一下我对这个问题的一些感悟。 感谢丁老师的邀请问答: 在这里我就简单说下,我这段时间参与 Seata 开源项目的一些感悟: 1、如何参与到开源项目中并贡献自己的一份力量? 我一直都有上 GitHub 搜索一些主流...

Seata 动态配置订阅与降级实现原理

2019-12-22
阅读 4 分钟
2k
Seata 的动态降级需要结合配置中心的动态配置订阅功能。动态配置订阅,即通过配置中心监听订阅,根据需要读取已更新的缓存值,ZK、Apollo、Nacos 等第三方配置中心都有现成的监听器可实现动态刷新配置;动态降级,即通过动态更新指定配置参数值,使得 Seata 能够在运行过程中动态控制全局事务失效(目前只有 AT 模式有这...

关于RocketMQ消息消费与重平衡的一些问题探讨

2019-11-05
阅读 8 分钟
1.7k
之前发表了一篇关于重平衡的文章:「Kafka 重平衡机制」,里面有说到 RocketMQ 重平衡机制是每隔 20s 从任意一个 Broker 节点获取消费组的消费 ID 以及订阅信息,再根据这些订阅信息进行分配,然后将分配到的信息封装成 pullRequest 对象 pull 到 pullRequestQueue 队列中,拉取线程唤醒后执行拉取任务,流程图如下:

RocketMQ主从如何同步消息消费进度?

2019-10-25
阅读 3 分钟
2.1k
其中,如果是广播模式消费,消息的消费进度是保存到本地,如果是集群消费模式,消息的消费进度则是保存到 Broker,但无论是保存到本地,还是保存到 Broker,消费者都会在本地留一份缓存,我们暂且看看集群消费模式下,消息消费进度的缓存是如何保存的:

RocketMQ主从读写分离机制

2019-10-22
阅读 3 分钟
1.8k
一般来说,选择主从备份实现高可用的架构中,都会具备读写分离机制,比如 MySql 读写分离,客户端可以向主从服务器读取数据,但客户写数据只能通过主服务器。

RocketMQ主从同步源码分析

2019-10-14
阅读 12 分钟
1.5k
之前写了一篇关于 RocketMQ 队列与 Kafka 分区副本的区别文章,里面提到了 RocketMQ 的消息冗余主要是通过主备同步机制实现的,这跟 Kafka 分区副本的 Leader-Follower 模型不同,HA(High Available) 指的是高可用性,而 RocketMQ 的HA机制是通过主备同步实现消息的高可用。

一个小小的里程碑

2019-10-10
阅读 1 分钟
1.6k
过去几天,这个公众号粉丝数量突破 2000 人了,这个数量可能对于一些公众号来说,连零头都不到,但对于我来说,有这么一群小伙伴看我写的技术分享,我就觉得很满足了,你们就是我坚持继续分享下去的源动力,在这里感谢这 2000 个小伙伴,感谢你们对这个公众号的厚爱。

RocketMQ为什么要保证订阅关系的一致性?

2019-07-30
阅读 12 分钟
1.5k
微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 前段时间有个朋友向我提了一个问题,他说在搭建 RocketMQ 集群过程中遇到了关于消费订阅的问题,具体问题如下: 然后他发了报错的日志给我看: {代码...} 我第一时间在源码里找到了报错的位置: org.apache.rocketmq.br...

分布式事务中间件Seata的设计原理

2019-07-11
阅读 4 分钟
2.9k
在微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响其它服务的正常运行。总之,微服务在业务的高速发展中带给我们越来越多的优势,但是微服务并不是十全十美,因此不能盲目过度...

日期居然用字符串保存?我笑了

2019-06-23
阅读 2 分钟
1.7k
微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车!

你都理解创建线程池的参数吗?

2019-06-04
阅读 5 分钟
2k
微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车!

由for update引发的血案

2019-06-03
阅读 8 分钟
11.3k
微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车!

聊聊Tomcat的架构设计

2019-05-31
阅读 6 分钟
1.8k
微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车!

关于线程池你不得不知道的一些设置

2019-04-14
阅读 3 分钟
2k
微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车!

深度解析RocketMQ Topic的创建机制

2019-03-31
阅读 8 分钟
4.3k
微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车!

从源码的角度解析Mybatis的会话机制

2019-03-20
阅读 9 分钟
2.1k
微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车!

mybatis-plus源码分析之sql注入器

2019-03-17
阅读 9 分钟
8.9k
微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车!