OSS紹介

Apache Kafka

Apache Kafka

NRIのOpenStandiaが提供するApache Kafka最新情報

Apache Kafkaの保守サポートサービスの内容はこちら Apache Kafkaの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

更新日:2018-07-20

Apache Kafkaの概要

Apache Kafka(アパッチ カフカ)は、JavaとScalaで書かれたオープンソースのストーリーミング送受信処理基盤であり、メッセージキュー(MQ)やメッセージングシステムと似通ったソフトウェアとなります。KafkaはアメリカのビジネスSNS企業であるLinkedInで2011年頃に開発されオープンソース化されました。その後、Apacheソフトウェア財団のプロジェクトとして認められ、現在はApacheソフトウェア財団の管理下で開発が継続されています。また、LinkedInでKafkaの開発に関わった主要メンバー達はConfluentという会社を立ち上げKafkaのEnterprise向けサービスを行っています。

TOPに戻る

Apache Kafkaの特徴

Kafkaは、複数のアプリケーションやデータベース間でストリームデータの中継点として送受信をする役目を担いますが、送信側(Producer)からのストリームデータを、耐障害のために保存を行なうフォールトトレラントな設計となっています。各Producerから送られてくるストリームデータはTopicと呼ばれ、Topic毎にカテゴライズされて保存されます。
Topicの中身はrecordと呼ばれるkey-valueで構成されたデータがtimestampをもって順序立てて連続しています。受信側はConsumerと呼ばれ、KafkaはConsumer毎に決められたTopicを送信します。 Kafkaは単一構成でも稼働しますが、複数のKafkaサーバを遠隔地のデータセンターに配置してクラスターを構成することも可能です。

Kafkaには4つのコアAPIが存在します。

・Producer API
送信側のアプリケーションやDBから1つ又は、複数のTopicとしてのストリームデータの配信を許可します。

・Consumer API
受信側に1つ又は、複数のTopicとしてのストリームデータの受信と処理を許可します。

・Steams API
アプリケーションにストリームプロセッサーとして動作することを許可します。1つ又は、複数のTopicとしてのストリームデータをinputストリームとして受け取り、効果的に変換してoutputストリームとして送信します。

・Connector API
既存のアプリケーションやデータベースをProducerやConsumerとして、データをインポートやエクスポートすることを許可します。

TOPに戻る

Kafkaのユースケース

・Messagingシステム
Kafkaをメッセージブローカーとして利用します。Kafkaはこれまでのメッセージブローカーの代替として十分に機能します。Kafkaは高いスループット、レプリケーションとフォールトトレランス機能を備えていますので、大規模なメッセージプロセッシングシステムを構成するための良いソリューションと考えられます。この分野では、類似のソフトウェアとしてActiveMQや、RabbitMQが存在します。

ActiveMQ
http://activemq.apache.org/

RabbitMQ
https://www.rabbitmq.com/

・Websiteのアクティビティトラッキング
Kafkaは元々、Websiteにおけるユーザのアクティビティを収集するため利用されていました。Websiteでのユーザのアクティビティは、ページビューや検索、ユーザがサイト上で行なう様々な動作が含まれます。それらをリアルタイムにモニタリングすることや、処理を行い収集したデータをHadoopなどのシステムに送信してユーザ動向の解析を行えます。

・メトリックスやログの収集
各システムから送られてくるシステムのメトリックスをモニタリングするために収集する役目を担います。また、多くのユーザはKafkaをログ収集のために利用しています。この分野では、ScribeやFlumeといった類似のソフトウェアが存在します。

Scribe
https://www.scribesoft.com/

Flume
https://flume.apache.org/

・ストリーム処理
Kafkaを、データプロセッシングのパイプラインとして利用します。Kafkaは送信者からデータを受け取って収集し、受信者に向け変換を行い送信します。この分野では、Apache StormやApache Samzaが類似のソフトウェアとして存在します。

Apache Storm
https://storm.apache.org/

Apache Samza
https://samza.apache.org/

TOPに戻る

Apache Kafkaの動作環境

Kafkaは、下記に示すUnix系OS上で動作します。Windowsで稼働させるには、まだいくつかの問題が残っているため、現状ではWindowsはサポートされるプラットフォームには含まれていません。

・主要なLinuxディストリビューション
・Solaris
・MacOSX

稼働させるにはJavaが必要になります。2018年7月現在のJavaの推奨バージョンは下記になります。

・Java7u51以上(Java8u5以上を推奨)

TOPに戻る

Apache Kafkaのライセンス

KafkaはApacheのトップレベルプロジェクトの1つです。ライセンスはApache License 2.0となっており、ユーザはそのソフトウェアの使用や頒布、修正、派生版の頒布をすることに制限を受けません。

TOPに戻る

Apache Kafkaのサポート

現在、OpenStandiaでは、Kafkaのサポートを行っておりません。

TOPに戻る

Apache Kafkaの参考情報

Apache Kafka公式サイト
https://kafka.apache.org/

Apache Kafka公式ドキュメント
https://kafka.apache.org/documentation/

Apache Kafkaエコシステムとして動作するツール一覧
https://cwiki.apache.org/confluence/display/KAFKA/Ecosystem

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気OpenAM
  • 注目MongoDB
  • OpenIDM
  • Corosync
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • BIND
  • Apache Struts
  • PostgreSQL
  • Pentaho
  • Spring Framework
  • Apache Tomcat
  • Solr
  • Dovecot
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Liferay
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • BIND
  • OpenDJ
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • sendmail
  • Courier-IMAP
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO
<--!-->