软件开发与架构领域 -体系化知识分享

理清软件领域各种似是而非的概念,深刻理解本质

Java并发编程 -- 再论锁的问题 -- 无锁与锁优化

在前面JUC源码分析和Disruptor分析序列中,我们已经反复讨论了锁与无锁的问题。众所周知,在多线程程序中,锁是性能杀手。因此“锁优化”一直是多线程中被频繁探讨的一个问题。本文将从“锁优化”这个应用层面,把前面的诸多东西串起来,探讨一下锁优化的一系列策略。策略1:业务和设计层面 – 单线程或去...

2017-01-20 19:04:59

阅读数:979

评论数:3

分布式消息队列RocketMQ源码分析之4 -- Consumer负载均衡与Kafka的Consumer负载均衡之不同点

在上1篇里,我们主要从使用层面介绍了Consumer的负载均衡机制。这一篇,我们将深入到源码内部,深入分析负载均衡的过程。 如果把RocketMQ的负载均衡和Kafka的对比一下,我们会发现有一些重要的不同之处。Kafka的负载均衡,参见: http://blog.csdn.net/chunl...

2017-01-20 13:31:35

阅读数:3427

评论数:0

分布式消息队列RocketMQ源码分析之3 -- Consumer负载均衡机制 -- Rebalance

同Kafka一样,RocketMQ也需要探讨一个问题:如何把一个topic的多个queue分摊给不同的consumer,也就是负载均衡问题。 有兴趣朋友可以关注公众号“架构之道与术”, 获取最新文章。 或扫描如下二维码: 在讨论这个问题之前,我们先看一下Client的整体架构。 Pro...

2017-01-17 17:35:44

阅读数:3319

评论数:0

分布式消息队列RocketMQ与Kafka架构上的巨大差异之2 -- CommitLog与ConsumeQueue

在前面Rocket与Kafka的对比之“拨乱反正”续篇中,我们已经提到了RocketMQ和Kafka在架构上面的一个巨大差异:Kafka是每个partition对应一个文件,而RocketMQ是把所有topic的所有queue的消息存储在一个文件里面,然后再分发给ConsumeQueue。 有兴...

2017-01-16 19:01:49

阅读数:4025

评论数:3

分布式消息队列Kafka & RocketMQ 深度学习资料精选

http://blog.csdn.net/a417930422/article/category/6086259 http://blog.csdn.net/lizhitao http://www.cnblogs.com/huxi2b http://blog.csdn.net/u0143939...

2017-01-13 13:09:40

阅读数:1894

评论数:0

分布式消息队列RocketMQ源码分析之2 -- Broker与NameServer心跳机制

我们知道,Kafka是通过ZK的临时节点来监测Broker的死亡的。当一个Broker挂了之后,ZK上面对应的临时节点被删除,同时其他Broker收到通知。 那么在RocketMQ中,对应的NameServer是如何判断一个Broker的死亡呢? 有兴趣朋友可以关注公众号“架构之道与术”, 获...

2017-01-12 18:34:05

阅读数:1694

评论数:0

分布式消息队列RocketMQ源码分析之1 -- Topic路由数据结构解析 -- topicRoute与topicPublishInfo与queueId

在前1篇RokcetMQ与Kafka架构差异一文中,我们已经讨论了2者在Topic的路由结构,也即topic/partition与物理机器的映射关系上的巨大差异。这个差异也是2者在架构上的一个巨大差异点,也是导致RocketMQ可以去除ZK依赖的一个重要原因。 本篇将接着这个话题,进一步从源码角...

2017-01-12 12:55:06

阅读数:4433

评论数:1

分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?

我们知道,在早期的RocketMQ版本中,是有依赖ZK的。而现在的版本中,是去掉了对ZK的依赖,转而使用自己开发的NameSrv。 并且这个NameSrv是无状态的,你可以随意的部署多台,其代码也非常简单,非常轻量。 那不禁要问了:ZooKeeper是业界用来管理集群的一个非常常用的中间件,比...

2017-01-04 13:24:00

阅读数:14826

评论数:9

分布式消息队列RocketMQ&Kafka -- 消息的“顺序消费”-- 一个看似简单的复杂问题

在说到消息中间件的时候,我们通常都会谈到一个特性:消息的顺序消费问题。这个问题看起来很简单:Producer发送消息1, 2, 3。。。 Consumer按1, 2, 3。。。顺序消费。 但实际情况却是:无论RocketMQ,还是Kafka,缺省都不保证消息的严格有序消费! 这个特性看起来很简...

2017-01-02 13:46:37

阅读数:15971

评论数:3

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