From 665dc7d5e839dab55465d3c1474746e4e6311004 Mon Sep 17 00:00:00 2001 From: yukon Date: Fri, 23 Dec 2016 14:33:03 +0800 Subject: [PATCH] Post a blog-How to Support More Queues in RocketMQ. --- ...-how-to-support-more-queues-in-rocketmq.md | 53 ++++++++++++++++++ ...stering-component-compatible-dependency.md | 2 - assets/images/blog/rocketmq-queues.png | Bin 0 -> 46754 bytes 3 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 _posts/2016-12-23-how-to-support-more-queues-in-rocketmq.md create mode 100644 assets/images/blog/rocketmq-queues.png diff --git a/_posts/2016-12-23-how-to-support-more-queues-in-rocketmq.md b/_posts/2016-12-23-how-to-support-more-queues-in-rocketmq.md new file mode 100644 index 0000000000..c413d30227 --- /dev/null +++ b/_posts/2016-12-23-how-to-support-more-queues-in-rocketmq.md @@ -0,0 +1,53 @@ +--- +title: "How to Support More Queues in RocketMQ?" +categories: + - RocketMQ +tags: + - RocketMQ + - Queue + - Partition + - Message Oriented Middleware +--- + +# Summary + +Kafka is a distributed streaming platform, which was born from [logging aggregation cases](https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying). It does not need too high concurrency. In some large scale cases in alibaba, we found that the original model has been unable to meet our actual needs. So, we developed a messaging middleware, named RocketMQ, which can handle a broad set of use cases, ranging from traditional publish/subscribe scenario to demandingly high volume realtime transaction system that tolerates no message loss. Now, in alibaba, RocketMQ clusters process more than 500 billion events every day, provide services for more than 3000 core applications. + +{% include toc %} + +# Partition design in kafka +1. Producer parallelism of writing is bounded by the number of partitions. +2. The degree of consumer consumption parallelism, also is bounded by the number of partitions being consumed. Assuming that the number of partitions is 20, then the maximum concurrent consumption of Consumer is 20. +3. Each Topic consists of a number of fixed number of partitions. Partition number determines the number of Topic that single Broker can support. + +More details please refer to [here](http://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/). + +## Why Kafka can't support more partitions +1. Each partition stores the whole message data, although each partition is written to the disk is in order, but a number of sequential partition writing at the same time from the aspect of operating system become a random writing. +2. Due to the scattered data files, it is difficult to use the linux IO Group Commit mechanism. + +# How to support more partition in RocketMQ? + +![screenshot](/assets/images/blog/rocketmq-queues.png) + + +1. All message data are stored in CommmitLog files. Complete sequential writing and random read. +2. ConsumeQueue stores the actual user consumption location information, they are flushed to disk in sequential mode. + +> pros: + +1. A very small amount of data on a single consume queue. Lightweight. +2. Sequential access in disk, avoid disk lock contention, and not incur high disk iowait when more and more queues created. + +> cons: + +1. Message consumption will read ConsumeQueue firstly, then read CommitLog if not found.This process brings a certain cost in the worst cases. +2. CommitLog and ConsumeQueue must be keep completely consistent, increasing the complexity of programming model. + +> Design Motivation: + +1. Random read. Read as much as possible to increase the PAGECACHE hit rate, and reduce read io operations. So bigger memory is still better. If too much message accumulation happened, whether the read performance will fall very badly? the answer is negative, reasons are as follows: + - [PAGECACHE prefetch](https://en.wikipedia.org/wiki/Cache_prefetching), even if the 1K message, the system will read more data in advance. You may hit the memory in the next read operation. + - Random access CommitLog from disk. If set the I/O scheduler to noop in SSD, the read qps will greatly accelerate than others scheduler algorithm. +2. Because ConsumeQueue stores little information, mainly associated with consumption locations.also, supports random read. Under PAGECACHE prefetch control, read performance almost keep consistent with the main memory, even if in the message accumulation cases. In this particular case,ConsumeQueue will not hinder the read performance. +3. CommitLog stores all the meta information, including the message data. similar db's redolog. So as long as CommitLog exists, even if the ConsumeQueue data is lost, data can be recovered. diff --git a/_posts/2016-12-23-mastering-component-compatible-dependency.md b/_posts/2016-12-23-mastering-component-compatible-dependency.md index c39662a96f..02c0f5eb2c 100644 --- a/_posts/2016-12-23-mastering-component-compatible-dependency.md +++ b/_posts/2016-12-23-mastering-component-compatible-dependency.md @@ -9,8 +9,6 @@ tags: - Maven --- -# Preface - This article mainly includes three parts.at first,I will introduce compatibility principle(more details see [here](http://blog.csdn.net/fengjia10/article/details/7799227)) briefly.followed by a detailed elaborating about Java component compatible dependency,including the interface-oriented programming,single component signature protection,single component compatibility protection and multi-component compatibility compile time checking.Finally is the review and prospect,especially about **Dependency Mediator** project. {% include toc %} diff --git a/assets/images/blog/rocketmq-queues.png b/assets/images/blog/rocketmq-queues.png new file mode 100644 index 0000000000000000000000000000000000000000..228f3139e5b8a9f115f62098bc65b33d1097be83 GIT binary patch literal 46754 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 F{{f(`YnK23 literal 0 HcmV?d00001