zookeepr+kafkaクラスタ構築(二)

2973 ワード

zookeeper+kafkaクラスタインストールの2これは前の記事の続編であり、kafkaインストールはzookeeperに依存する必要があります.本稿と前の記事は、本番環境に直接使用できる本格的な分散インストール構成です.zookeeperインストールリファレンス:まず、いくつかのkafkaの概念を理解します.kafkaはメッセージキューサーバであり、サービスはbrokerと呼ばれ、メッセージ送信者はproducerと呼ばれています.メッセージ受信者をconsumerと呼ぶ.通常、複数のbrokerを配備して高可用性のメッセージサービスクラスタを提供します.典型的には3つのbrokerです.メッセージはtopicの形式でbrokerに送信され、消費者はtopicを購読し、必要に応じて使用する消費モデルを実現する.TOpicを作成するにはreplication-factor(通常=broker数)を指定する必要があります.各topicには複数のパーティション(partition)があり、各パーティションのメッセージ内容は重複しない:
          test topic,      2,         test     "msg1:hello beijing" "msg2:hello shanghai"   ,              (      )?

msg1 test.1, test.2. kafka.producer.Partitioner :

interface Partitioner {
   int partition(java.lang.Object key, int numPartitions);
}
擬似コードの実装:
package org.mymibao.mq.client;

import kafka.producer.Partitioner;

public class DefaultKafkaPartitioner implements Partitioner {
   private final static int FIRST_PARTITION_ID = 1;

   public int partition(Object key, int numPartitions) {
       return FIRST_PARTITION_ID;
   }
}
kafkaインストール構成リファレンス:1)KAFKA$wgetをダウンロードhttp://apache.fayea.com/apache-mirror/kafka/0.8.1.1/kafka_2.9.2-0.8.1.1.tgzhttp://blog.csdn.net/ubuntu64fan/article/details/266788772)構成$KAFKA_HOME/config/server.properties 3つのbrokerをインストールします.それぞれ3つのvmに:zk 1,zk 2,zk 3:zk 1:$vi/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=zk1
$vi$KAFKA_HOME/config/server.properties
broker.id=0
port=9092
host.name=hadoop0
advertised.host.name=hadoop0
...
num.partitions=2
...
zookeeper.connect=hadoop0:2181,hadoop1:2181,hadoop2:2181
zk 2:
broker.id=1
port=9092
host.name=zk2
advertised.host.name=zk2
...
num.partitions=2
...
zookeeper.connect=hadoop0:2181,hadoop1:2181,hadoop2:2181
zk 3:$vi/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=zk3
broker.id=2
port=9092
host.name=zk3
advertised.host.name=zk3
...
num.partitions=2
...
zookeeper.connect=hadoop0:2181,hadoop1:2181,hadoop2:2181
3)zokeeperサービスを開始し、zk 1,zk 2,zk 3でそれぞれ実行:$zkServer.sh start 4)kafkaサービスを開始し、zk 1,zk 2,zk 3でそれぞれ実行:$kafka-server-start.sh$KAFKA_HOME/config/server.properties 5)新しいTOPIC(replication-factor=num of brokers)$kafka-topics.sh--create--topic test--replication-factor 3--partitions 2--zokeeper zk 1:21816)は、zk 2上に端末を開き、kafka(zk 2シミュレーションproducer)にメッセージを送信すると仮定します.$kafka-console-producer.sh--broker-list zk 1:9092--sync--topic testメッセージを送信する端末入力:Hello Kafka 7)zk 3上に端末を開き、メッセージの消費(zk 3アナログconsumer)$kafka-console-consumer.sh--zookeeper zk 1:2181--topic test--from-beginning 8)プログラミング操作ProducerとConsumerの例参照: