オープンソースプロジェクト
apache/kafka avatar
apache/kafka

Apache Kafka:kafka-storage.sh formatと./gradlew jar

Apache Kafka - 分散型イベント ストリーミング プラットフォーム。 Java バージョン 17 および 25 を使用して Apache Kafka をビルドし、テストします。

スター 33,730フォーク 15,516JavaApache-2.0

ひと目でわかる

これは何?
Java 17/25ビルドの分散イベントストリーミング。clients/streams release 11、Scala 2.13、Spotless/SpotBugs、Docker 9092をREADME事実で整理する。
誰に向いている?
trunk自前ビルドでイベントストリーミング基盤を評価するJavaチーム向け。./gradlew jar後にkafka-storage.sh random-uuid/format --standalone/server-startでKRaft起動し、clients/src/test/resources/log4j2.yamlでNetworkClientTestログを確認する。
商用利用できる?
できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。直近 1 日以内に新しいコミットがあります。
何の言語で書かれている?
主に Java です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

分散イベントストリーミングプラットフォーム

Apache KafkaはJavaで書かれたオープンソースの分散イベントストリーミングプラットフォームです。READMEは、高性能データパイプライン、ストリーミング分析、データ統合、ミッションクリティカルなアプリケーションでの使用を説明し、数千の企業で使用されていると述べています。リポジトリメタデータは約33,000スターと15,000フォークを示し、デフォルトブランチはtrunkです。プロジェクトのホームページはkafka.apache.orgです。

JavaとScalaのバージョン

READMEはJavaのインストールを要求し、Java 17と25でビルド・テストされていると述べています。javacのreleaseパラメータはclientsとstreamsモジュールでは11、それ以外では17に設定されており、READMEによればそれぞれの最小Javaバージョンとの互換性が保証されます。scalacのreleaseパラメータはstreamsモジュールでは11、それ以外では17です。Scala 2.13が唯一サポートされるScalaバージョンです。

プロジェクトのビルド

すべてのビルドタスクはGradle経由で実行します。`./gradlew jar`はJARを生成し、`./gradlew srcJar`はソースJARを生成し、`./gradlew aggregatedJavadoc --no-parallel`は集約されたjavadocをビルドします。バイナリリリースのgzipped tarballは`./gradlew clean releaseTarGz`で生成され、`./core/build/distributions/`に配置されます。READMEは実行手順についてkafka.apache.org/quickstartを参照し、IntelliJ(Gradleネイティブサポート)とEclipse(`./gradlew eclipse`)のIDEセットアップを文書化しています。

ユニットテストと統合テスト

テストスイートはユニットテストと統合テストに分かれています。`./gradlew test`は両方を実行し、`./gradlew unitTest`と`./gradlew integrationTest`は各グループを個別に実行します。flakyとマークされたテストは`-Pkafka.test.run.flaky=true`フラグで実行します。個別のテストクラスやメソッドは`--tests`オプションで指定でき、Gradleのテスト再試行プラグインは`-PmaxTestRetries`と`-PmaxTestRetryFailures`プロパティでサポートされています。再試行はデフォルトで無効です。カバレッジレポートは`./gradlew reportCoverage -PenableTestCoverage=true -Dorg.gradle.parallel=false`で生成します。

Kafka READMEはScala2.13のみサポートと明記し、javac/scalac releaseパラメータのclients/streamsモジュール11その他17という使い分けを説明しています。

ブローカーの起動

READMEはKafkaブローカーを起動する2つの方法を文書化しています。コンパイル済みファイルからは、`./bin/kafka-storage.sh random-uuid`でクラスタIDを生成し、`./bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties`でストレージをフォーマットし、`./bin/kafka-server-start.sh config/server.properties`でサーバーを起動します。あるいはDockerイメージも利用できます: `docker run -p 9092:9092 apache/kafka:latest`。詳細はdocker/README.mdを参照とされています。

コード品質チェック

READMEは3つの静的解析ツールを扱っています。Checkstyleは一貫したコーディングスタイルを強制し、違反があるとビルドを失敗させます。レポートは`reports/checkstyle/`にあります。Spotlessはインポート順序を処理し、READMEはプルリクエストを提出する前に`./gradlew spotlessApply`を実行するよう求めています。SpotBugsはコード内のバグを探し、`./gradlew spotbugsMain spotbugsTest -x test`でHTMLまたはXMLレポートを生成します。READMEはまたjmh-benchmarks/の下のJMHマイクロベンチマークにも言及しています。

Kafkaパッチ提出はKafka JIRA、コミュニケーションはApacheメーリングリストとkafka.apache.org/contributing.htmlがREADME貢献節の入口です。Apache License 2.0ライセンスで保証やサポートは提供されません。

貢献とライセンス

READMEはApache KafkaのJIRAインスタンスを通じたパッチを歓迎し、Apacheメーリングリストとkafka.apache.org/contributing.htmlへの誘導を行っています。リポジトリはApache License 2.0の下でライセンスされています。ライセンス抜粋は、作品を複製、派生作品を作成、公開表示、公開演奏、サブライセンス、配布するための永続的、全世界的、非独占的、無償、ロイヤリティフリー、取消不能な著作権ライセンスを付与し、特許ライセンスも含みます。ライセンス本文は保証、サポート、セキュリティ保証については述べていません。

KRaft単機起動評価

Kafka README Running a Kafka broker節は./gradlew jar成功後、KAFKA_CLUSTER_ID=$(./bin/kafka-storage.sh random-uuid)、./bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties、./bin/kafka-server-start.sh config/server.propertiesの順を示します。Docker代替はdocker run -p9092:9092 apache/kafka:latest。clients/src/test/resources/log4j2.yaml L35 level:INFO変更と./gradlew cleanTest clients:test --tests NetworkClientTestがREADMEデバッグ手順です。

README Specifying test retries節は-PmaxTestRetries/-PmaxTestRetryFailuresとTest Retry Gradle Plugin参照。./gradlew clean releaseTarGzでcore/build/distributions/ tarball生成。streams/quickstartはmvn deploy必要とREADME記載。

READMEは性能SLAやサポート体制を本文に提供していません。評価時はREADMEがリンクする一次資料とリリース情報を参照します。

README Building a binary release gzipped tarball節の./gradlew clean releaseTarGzは./core/build/distributions/に成果物を置きます。Generating test coverage reports節はcore/build/reports/scoverageTest/index.htmlとjacoco HTMLパスを記載。Force re-running tests節は--rerun-tasksと500回ループ例を示します。Publishing streams quickstart archetypeはstreams/quickstartでmvn deployが必要とREADMEは明記しています。

Kafka READMEはtrunkブランチ開発を前提にGradleタスク一覧を./gradlew tasksで確認できます。ユニットテストと統合テストは./gradlew unitTestおよび./gradlew integrationTestで分離実行可能です。flakyテストは-Pkafka.test.run.flaky=trueフラグで実行します。個別テスト指定は./gradlew clients:test --tests RequestResponseTestの形式です。メソッド単位はorg.apache.kafka.clients.MetadataTest.testTimeToNextUpdateのように完全修飾名を指定します。Eclipse開発者向けに./gradlew eclipseはbuild_eclipseディレクトリを使用しbinディレクトリとscriptsディレクトリの衝突を回避します。IDE開発はJDK17推奨とREADME Noteに明記されています。

SpotlessはPR前に./gradlew spotlessApply推奨、SpotBugsは./gradlew spotbugsMain spotbugsTest -x testでHTML/XMLレポート生成。Checkstyle違反はビルド失敗、レポートはreports/checkstyle/に出力されます。jmh-benchmarks/ディレクトリにJMHマイクロベンチマークがあり、processMessages/processTestMessagesでRPC自動生成メッセージを再生成できます。 READMEは数千企業利用と/README称ますが具体企業名は列挙していません。

編集部の結論

trunk自前ビルドでイベントストリーミング基盤を評価するJavaチーム向け。./gradlew jar後にkafka-storage.sh random-uuid/format --standalone/server-startでKRaft起動し、clients/src/test/resources/log4j2.yamlでNetworkClientTestログを確認する。READMEは本番SLAを示さないためミッションクリティカル選定はkafka.apache.org/quickstart外の運用文書が必要。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
コミュニティノート

コミュニティノート