カフカとパーティションのコピーキューの違いRocketMQ

カフカ最近の研究では、コアコンセプトRocketMQはまだ、いくつかの違いがありカフカパーティションとRocketMQを私を、以下のことがわかりました

キューとの違い。

RocketMQキュー

各被験者は、それぞれのブローカクラスタ、以下の分布に分散キューのRocketMQの複数を有することになります。

ブローカー・キューでクラスタモードでは、各コンシューマ・グループの各キューは唯一の消費者のサブスクリプション支出することができますが、消費者はまた、そのクラスタモードを保証する、複数のキューを消費することができ、消費者のキューに抽象化されます以下に示すようにメッセージの下、繰り返し消費されません:鄭州不妊病院ランキング:のhttp://wapyyk.39.net/zz3/zonghe/1d427.html

クラスタモデルによって作成されたテーマを、作成するときRocketMQではオープンソース版は、キューの数は、クラスタの2つのブローカーを持っているような、我々は数が4であるキューテーマを作成するときに、選択し、クラスタ内のトピックを指定し、それがすべてのブローカーでになります4つのキューのテーマを作成し、クラスタ内のトピックは4 * 2キュー番号を持っていますが、ここでは正確にキューの数ではなく、問題を制御されていない良い場所です。

マスタ・スレーブモードによって実現RocketMQ冗長メッセージは、本番環境で、複数のクラスタマルチモードマスタースレーブを構築するために取られる、マスタとスレーブ間のキュー・データの同期は、同期および非同期複製の二種類を有しています。

したがって、RocketMQは、消費者キュー、及び主からキューデータの同期冗長メッセージを頼ります。鄭州の不妊チェックします。http://wapyyk.39.net/zz3/zonghe/1d427.html

カフカとパーティションのコピー

パーティションの概念カフカは、その中心的な概念の一つである、ゾーニングのメカニズムは、カフカが横方向に拡張する能力を持っています、そのパーティション上で、カフカも大幅に信頼性カフカメッセージを改善し、コピーパーティションを設定することができます。

在 Kafka 中,一个主题在集群中会拥有一个以上分区,每个分区在每个消费集群中只能有一个消费者进行订阅消费,,但是一个消费者可以消费多个队列,与 RocketMQ 队列一样:

我们可以通过调整主题的分区数量提高消息的吞吐量,还可以为分区设置副本因子,即该分区在集群中拥有多少个副本(replica),副本分为 leader replica 与 follower replica,它们之间通过 ISR(in-sync replica)与 leader replica 保持数据同步。

在创建主题topic-demo时,可以指定主题在集群中的分区数量,以及副本因子大小:

--partitions 4 --replication-factor 2

以上参数为该主题创建了 4 个分区,副本因子为 2,我现在有个集群,有 3 个 broker:

nodel brokerid=O 
node2 brokerid=l 
node3 brokerid=2

根据 Kafka 的默认分配:

node1: topic-demo-0、topic-demo-1
node2: topic-demo-1、topic-demo-2、topic-demo-3
node3: topic-demo-0、topic-demo-2、topic-demo-3

有没有发现,每个分区都分配了一个副本,而且分区的分布尽量均衡,分区副本尽量不在同一个节点上,如果我们设置副本因子为 3,原理一样。

不同于 RocketMQ 队列,Kafka 的分区可以在集群中精确设置多少个,然后随机均衡地分布在集群上,还可以自由定义副本的多少,而 RocketMQ 的 Master-Slave 模式看起来仅有一份副本,当然为了节省存储空间以及提高性能,一般副本因子设置 2 也就够了。

相对比 RocketMQ 的队列与主从同步机制,Kafka 的分区与副本机制显得更加灵活,而且也更加合理。


おすすめ

転載: blog.51cto.com/14510269/2441933