信頼できるメッセージ配送のための配備

少なくとも一回のメッセージの送信のためにどうやって配備しますか?

少なくとも一回のメッセージ送信とは何か の中で説明されたように、Gearpump は組み込みのKafkaSourceを持ちます。少なくとも一回のメッセージの配信をするためには、ユーザはGearpumpクラスタと一緒にオフセットのストアとしてKafkaクラスタを配備する必要があります。

以下はローカル Kafkaクラスタを配備する例です。

  1. 最新のKafkaを公式webサイトからダウンロードし、ローカルディレクトリ ($KAFKA_HOME)に解凍します

  2. Kafkaにパッケージ化されている1ノードのZookeeperインスタンスを立ち上げます。

    $KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties
  3. Kafka brokerを開始します

    $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/kafka.properties
  4. KafkaSourceのためのオフセットストアを生成する場合、zookeeper接続文字列をlocalhost:2181に設定し、 in KafkaStorageFactory内のブローカーリストをlocalhost:9092に設定します。

    val offsetStorageFactory = new KafkaStorageFactory("localhost:2181", "localhost:9092")
    val source = new KafkaSource("topic1", "localhost:2181", offsetStorageFactory)

確実に1回のメッセージ配送のためにどうやって配備しますか?

確実に一回のメッセージ配送にはオフセットストアとチェックポイントストアの両方が必要です。オフセットストアに関しては、Kafkaクラスタは前の章のように配備される必要があります。チェックポイントストアに関しては、GearpumpはHDFSのようなHadoopファイルシステムのための組み込みのサポートを持ちます。従って、ユーザはGearpumpクラスタと並行して、HDFSクラスタを配備する必要があります。

以下はローカルHDFSクラスタを配備する例です。

  1. Hadoop2.6を公式のwebサイトからダウンロードし、それをローカルディレクトリHADOOP_HOMEに解凍します

  2. 以下の設定を$HADOOP_HOME/etc/core-site.xmlに追加します

    <configuration>
      属性
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
      </property>
    </configuration>
    
  3. HDFSを開始します

    $HADOOP_HOME/sbin/start-dfs.sh
    
  4. HadoopCheckpointStoreを生成する場合は、core-site.xmlにあるようにhadoop設定を設定します。

    val hadoopConfig = new Configuration
    hadoopConfig.set("fs.defaultFS", "hdfs://localhost:9000")
    val checkpointStoreFactory = new HadoopCheckpointStoreFactory("MessageCount", hadoopConfig,
       // rotate on 1KB
       new FileSizeRotation(1000))
TOP
inserted by FC2 system