Kafka
基本的なBXIの設定では、オンラインインスタンスで、取引、およびロギング処理のすべてを行う。
ロギングインスタンスおよびKafkaを利用して、この役割を分離できるが、そのために必要な設定作業は、下記のとおりである。設定
- 物理サーバーが1台の場合
- 物理サーバーが3台の場合
1. ZooKeeper設定
${BXIHOME}/kafka/config/zookeeper.properties
# zookeeperデータパスの設定
dataDir=${KAFKA_HOME}/zookeeper
# zookeeperリッスンポートの設定
clientPort=2181
2. ZooKeeper実行
${BXIHOME}/kafka/bin/zookeeper-server-start.sh ${BXIHOME}/kafka/config/zookeeper.properties
3. Kafka設定
${BXIHOME}/kafka/config/server.properties
# Kafkaリスナーの設定
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092
# Kafkaログディレクトリの設定
log.dirs${KAFKA_HOME}/logs
# zookeeper リスナーアドレスの入力
zookeeper.connect=localhost:2181
4. トピック設定
zookeeperのip、portを設定に合わせて変更した後、Kafkaを1台のサーバーで使用するため、replication-factor
は1に設定する。
${BXIHOME}/kafka/bin/create_kafka_topic.sh
${KAFKA_HOME}/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic errorLog_${1} --replication-factor 1 --partitions 5
${KAFKA_HOME}/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic imageLog_${1} --replication-factor 1--partitions 40
${KAFKA_HOME}/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic stctsLog_${1} --replication-factor 1 --partitions 5
${KAFKA_HOME}/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic txHistoryLog_${1} --replication-factor 1 --partitions 20
${KAFKA_HOME}/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic instanceMonitoringLog_${1} --replication-factor 1 --partitions 10
5. Kafka実行
${BXIHOME}/kafka/bin/kafka-server-start.sh ${BXIHOME}/kafka/config/server.properties
${BXIHOME}/kafka/bin/create_kafka_topic.sh ${TENANT_ID}
caution
それぞれのサーバーにすべてのkafkaをインストールし、下の設定をすべて行う必要がある。
1. ZooKeeper設定
${BXIHOME}/kafka/config/zookeeper.properties
# zookeeperデータパスの設定
dataDir=${KAFKA_HOME}/zookeeper
# zookeeperリッスンポートの設定
clientPort=2181
initLimit=5
syncLimit=2
# Zookeeper 2888は同期化のためのポート、3888はクラスタを構成するとき、leaderを選出するためのポート
server.1=サーバー1のIP:2888:3888
server.2=サーバー2のIP:2888:3888
server.3=サーバー3のIP:2888:3888
2. ZooKeeper実行
それぞれのサーバーですべて実行する。
${BXIHOME}/kafka/bin/zookeeper-server-start.sh ${BXIHOME}/kafka/config/zookeeper.properties
3. Kafka設定
${BXIHOME}/kafka/config/server.properties
# Kafkaサーバーの固有ID。必ずKafkaサーバーごとに異なる必要がある。
broker.id=1
# Kafkaリスナーの設定
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092
# Kafkaログディレクトリの設定
log.dirs${KAFKA_HOME}/logs
# zookeeper リスナーアドレスの入力
zookeeper.connect=サーバー1のIP:2181、サーバー2のIP:2181、サーバー3のIP:2181
4. トピック設定
zookeeperのip、portを設定に合わせて変更した後、kafkaを3台のみ起動するため、replication-factor
は2、または3に設定する。
${BXIHOME}/kafka/bin/create_kafka_topic.sh
${KAFKA_HOME}/bin/kafka-topics.sh --create --zookeeper サーバー1のIP:2181,サーバー2のIP:2181,サーバー3のIP:2181 --topic errorLog_${1} --replication-factor 3 --partitions 5
${KAFKA_HOME}/bin/kafka-topics.sh --create --zookeeper サーバー1のIP:2181,サーバー2のIP:2181,サーバー3のIP:2181 --topic imageLog_${1} --replication-factor 3--partitions 40
${KAFKA_HOME}/bin/kafka-topics.sh --create --zookeeper サーバー1のIP:2181,サーバー2のIP:2181,サーバー3のIP:2181 --topic stctsLog_${1} --replication-factor 3 --partitions 5
${KAFKA_HOME}/bin/kafka-topics.sh --create --zookeeper サーバー1のIP:2181,サーバー2のIP:2181,サーバー3のIP:2181 --topic txHistoryLog_${1} --replication-factor 3 --partitions 20
${KAFKA_HOME}/bin/kafka-topics.sh --create --zookeeper サーバー1のIP:2181,サーバー2のIP:2181,サーバー3のIP:2181 --topic instanceMonitoringLog_${1} --replication-factor 3 --partitions 10
5. Kafka実行
kafkaは、各サーバーですべて実行し、トピック作成スクリプトは一台のサーバーでのみ実行する必要がある。
${BXIHOME}/kafka/bin/kafka-server-start.sh ${BXIHOME}/kafka/config/server.properties
${BXIHOME}/kafka/bin/create_kafka_topic.sh ${TENANT_ID}
BXI設定変更
ロギングインスタンスを追加した後、ローカルロギングになっている基本設定をリモートロギングに変更する。 詳しい設定方法は、ログ管理を参照する。