Apache Kafka

Apache Kafka[1]
作者 LinkedIn
開発元 Apache Software Foundation
初版 2011年1月 (14年前) (2011-01)[2]
最新版
3.9.0[3] ウィキデータを編集 / 6 11月 2024
リポジトリ ウィキデータを編集
プログラミング
言語
Scala, Java
対応OS クロスプラットフォーム
種別 ストリーム・プロセッシング, メッセージブローカー
ライセンス Apache License 2.0
公式サイト kafka.apache.org ウィキデータを編集
テンプレートを表示

Apache Kafkaは、分散型イベントストアおよびストリーム処理プラットフォームである。Apacheソフトウェア財団が管理するオープンソースのシステムで、JavaScalaを用いて実装されている。このプロジェクトは、リアルタイムのデータフィードを処理するための、統一された高スループット・低遅延のプラットフォームを提供することを目的としている。Kafka Connectと呼ばれるフレームワークを用いることにより、外部システムと接続しデータのインポート/エクスポートを行うことができるほか、ストリーム処理を行うアプリケーション向けのKafka Streamsライブラリが提供されている。通信の効率化を行うため、KafkaはTCP上でバイナリ形式による通信を行い、また「メッセージセット」と呼ばれる概念を導入し複数のメッセージをまとめて送受信することを可能にしている。これらの工夫により、Kafkaは「より大きなネットワークパケット、より大きなシーケンシャルなディスク操作、連続したメモリブロック(中略)を実現し、莫大な数のランダムなメッセージを線形に書き込むことができる[4]」と主張する。

歴史

Kafkaは元々LinkedInで開発され、その後2011年初めにオープンソース化された。ジェイ・クレプス、ネーハ・ナルケデ英語版、ジュン・ラオによって共同で開発された[5]。2012年10月23日にApache Incubatorから卒業した[6]。このシステムの名称はフランツ・カフカに由来するが、クレプスはその理由として、Kafkaが「書くことに最適化されたシステム」であり、また彼がカフカの作品が好きだったためと語っている[7]

アプリケーション

Apache Kafkaはコミットログをベースにしており、ユーザーはそれをサブスクライブして、任意の数のシステムやリアルタイムアプリケーションにデータを公開することができる。Kafkaの採用例として、Uberにおける乗客とドライバーのマッチング管理、ブリティッシュガスのスマートホームサービスにおけるリアルタイム分析および予知保全の提供、LinkedIn全体における多数のリアルタイムサービスの実行などがある[8]

アーキテクチャ

Kafkaの概要

Kafkaは、「プロデューサー」と呼ばれる任意の数のプロセスから送られてくるKey-Valueメッセージを保存する。データは、異なる「トピック」内の異なる「パーティション」に分割することができる。パーティション内では、メッセージはオフセット(パーティション内でのメッセージの位置)の順に記録され、タイムスタンプとともにインデックス化されて保存される。「コンシューマー」と呼ばれる他のプロセスは、パーティションからメッセージを読み取ることができる。ストリーム処理については、KafkaはStreams APIを提供しており、Kafkaからデータを取り出して、何らかの計算結果をKafkaに書き戻すJavaアプリケーションを書くことができる。また、Apache Kafkaは、Apache Apex、Apache Beam、Apache Flink、Apache Spark、Apache Storm、Apache NiFiなどのストリーム処理システムとも連携させることができる。

Kafkaは1台以上の「ブローカー」と呼ばれるサーバーから構成されるクラスタ上で動作し、全てのトピックのパーティションがクラスタノードに分散される。さらに、パーティションは複数のブローカーに複製されている。このアーキテクチャにより、Kafkaは大量のメッセージストリームをフォールトトレラントな方法で配信でき、Java Message Service (JMS)やAdvanced Message Queuing Protocol (AMQP) などの従来のメッセージングシステムの一部を代替できるようになった。バージョン0.11.0.0でトランザクション書き込みが実装され、Streams APIを用いたexactly-onceなストリーム処理が実現可能となった。

トピックには通常のトピックとコンパクト化されたトピックの2種類がある。通常のトピックにおいては保持時間または容量上限を設定することができる。指定された保持時間よりも古いレコードが存在する場合やパーティションの容量上限を超えた場合には、ストレージ領域を確保するために古いデータが削除される。コンパクト化されたトピックでは、あるキーを持つメッセージが送られてきた際に、同じキーを持つメッセージの更新としてそのメッセージを扱う。メッセージは期限切れや容量超過などの理由により削除されることはなく、特定のキーに対しNULL値を持ついわゆるtombstone(墓標)メッセージを書くことで初めて削除される。

Kafkaには、5つの主要なAPIがある。

  • メッセージの公開を行うためのProducer API
  • トピックをサブスクライブし、メッセージのストリームを処理するためのConsumer API
  • 既存のアプリケーションにトピックをリンクさせることができるConnector API
  • 入力されたストリームのメッセージを変換し別のストリームとして出力するためのStreams API
  • トピック、ブローカー、およびその他のKafkaオブジェクトを管理するためのAdmin API

Consumer APIとProducer APIは、基盤となるメッセージングプロトコルによってKafkaのコア機能から切り離されている。これにより、Consumer APIとProducer APIと互換性のあるAPIをJava以外の言語でも性能を保ったまま実装することができる。Apache Kafkaプロジェクトは、このようなサードパーティ製のAPIのリストを管理している。

Kafka API

Connector API

Kafka Connect(またはConnector API)は、バージョン0.9.0.0で追加された他のシステムとの間でデータをインポート/エクスポートするためのフレームワークである。Connectフレームワーク自体は、他のシステムからデータを読み書きするための実際のロジックが実装された、いわゆる「コネクター」を実行する。Connector APIは、カスタムコネクタを構築するために実装しなければならないプログラミングインターフェースを定義している。一般的なデータシステム向けのオープンソースおよび商用のコネクターは、すでに多数提供されている。しかし、Apache Kafka自体には、実用可能なコネクターは含まれていない。

Streams API

Kafka Streams(またはStreams API)は、Javaで記述されたストリーム処理ライブラリである。Kafka 0.10.0.0リリースで追加された。このライブラリにより、拡張性、伸縮性、耐障害性に優れたステートフルなストリーム処理を行うアプリケーションを開発できる。主なAPIはストリーム処理用のDSLで、フィルタ、マップ、グループ化、ウィンドウ、集約、結合、テーブルの概念などの一般的なストリーム操作を提供する。より詳細なストリーム処理の実装のためにProcessor APIも用意されており、DSLとProcessor APIを併用して処理を記述することもできる。ステートフルなストリーム処理のために、Kafka StreamsはRocksDBを使ってローカルな各演算子の状態を保持する。RocksDBはディスクへの書き込みが可能なため、保持される状態は利用可能なメモリ容量よりも大きくなる可能性がある。また、耐障害性の観点から、ローカルのステートストアへの更新はすべてKafkaクラスタのトピックに書き込まれる。このため、これらのトピックを読み込むことで状態を再現し、すべてのデータをRocksDBに送り込むことができる。

バージョンの互換性

バージョン0.9.xまでのKafkaブローカーは、古いクライアントとのみ後方互換性をもつ一方、バージョン0.10.0.0以降では、ブローカーは新しいクライアントと前方互換性もある。新しいクライアントが古いブローカーに接続した場合、ブローカーがサポートする機能のみを使用することができる。Streams APIについては、バージョン0.10.1.0から完全な互換性がある。0.10.1.0のKafka Streamsアプリケーションは、0.10.0や古いブローカーと互換性はない。

パフォーマンス

エンドツーエンドのパフォーマンスを監視するには、ブローカー、コンシューマー、プロデューサーのメトリクスを追跡する必要があり、さらにKafkaがコンシューマー間の調整に使用しているZooKeeperも監視する必要がある[9][10]。現在、Kafkaのパフォーマンスを追跡するためのモニタリング・プラットフォームがいくつか存在する。これらのプラットフォームに加えて、Kafkaデータの収集は、JConsoleを含む一般的にJavaにバンドルされているツールを使用して実行することもできる[11]

関連項目

参考文献

  1. ^ Apache Kafka at GitHub”. github.com. 5 March 2018閲覧。
  2. ^ Open-sourcing Kafka, LinkedIn's distributed message queue”. 27 October 2016閲覧。
  3. ^ Release 3.9.0” (6 11月 2024). 20 11月 2024閲覧。
  4. ^ Efficiency”. kafka.apache.org. 2019年9月19日閲覧。
  5. ^ Li, S. (2020).
  6. ^ Apache Incubator: Kafka Incubation Status”. 2023年2月6日閲覧。
  7. ^ What is the relation between Kafka, the writer, and Apache Kafka, the distributed messaging system?”. Quora. 2023年2月8日閲覧。
  8. ^ What is Apache Kafka”. confluent.io. 2018年5月4日閲覧。
  9. ^ Monitoring Kafka performance metrics” (英語) (2016年4月6日). 2016年10月5日閲覧。
  10. ^ Mouzakitis (2016年4月6日). “Monitoring Kafka performance metrics” (英語). datadoghq.com. 2016年10月5日閲覧。
  11. ^ Collecting Kafka performance metrics - Datadog” (英語) (2016年4月6日). 2016年10月5日閲覧。

外部リンク

Read other articles:

Penyaliran bawah tanah kota Sydney di New South Wales, Australia Drainase, penyaliran, pengatusan, atau pematusan adalah pembuangan massa air secara alami atau buatan dari permukaan atau bawah permukaan dari suatu tempat. Pembuangan ini dapat dilakukan dengan mengalirkan, menguras, membuang, atau mengalihkan air.[1] Drainase merupakan bagian penting dalam penataan sistem air di bidang tata ruang. Dalam lingkup rekayasa sipil, drainase dibatasi sebagai serangkaian bangunan air yang ber...

 

Census-designated place in Maryland, United StatesOlney, MarylandCensus-designated placeOlney's St. John's Episcopal Church in 2013.Location of Olney in MarylandCoordinates: 39°08′11″N 77°04′17″W / 39.13639°N 77.07139°W / 39.13639; -77.07139Country United StatesState MarylandCounty MontgomeryArea[1] • Total16.22 sq mi (42.02 km2) • Land16.18 sq mi (41.91 km2) • Water0.04...

 

Non-metropolitan district in Warwickshire, England This article is about the local government district. For the town, see Stratford-upon-Avon. For other uses of the name, see Stratford (disambiguation). Non-metropolitan district in EnglandStratford-on-Avon DistrictNon-metropolitan districtRiver Avon at Stratford-upon-AvonShown within WarwickshireSovereign stateUnited KingdomConstituent countryEnglandRegionWest MidlandsAdministrative countyWarwickshireAdmin. HQStratford-upon-AvonGovernmen...

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Januari 2023. Teresa Billington-GreigLahirTeresa Mary Billington(1876-10-15)15 Oktober 1876Preston, Britania RayaMeninggal21 Oktober 1964(1964-10-21) (umur 88)London, Britania RayaKebangsaanBritania RayaAlmamaterUniversitas ManchesterPekerjaanPenulis, suffragis...

 

Heelless leather slippers made from Northwest Africa This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (August 2010) (Learn how and when to remove this message) Part of a series onArabic culture ArchitectureStyles Islamic Yemeni Nabataean Umayyad Abbasid Fatimid Moorish Mamluk Features Ablaq Alfiz Arabesque Arabic dome Banna'i Gardens Girih Horseshoe arch Howz H...

 

Cet article est une ébauche concernant le tennis. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Logo des tournois ATP 500. Les tournois ATP 500 (anciennement appelés ATP Championship Series de 1990 à 1997, ATP International Series Gold de 1998 à 2008 et ATP World Tour 500 de 2009 à 2018) désignent les tournois de tennis du circuit professionnel masculin, l'ATP Tour, qui rapportent actuellement 500 p...

Harimau siberia Status konservasi Terancam  (IUCN 3.1)[1] Klasifikasi ilmiah Kerajaan: Animalia Filum: Chordata Kelas: Mamalia Ordo: Karnivora Famili: Felidae Genus: Panthera Spesies: P. tigris Subspesies: P. t. altaica Nama trinomial Panthera tigris altaicaTemminck, 1844 Harimau siberia (bahasa Latin: Panthera tigris altaica) adalah subspesies harimau yang habitatnya berada di wilayah Rusia dan berstatus dilindungi. Harimau siberia dianggap sebagai subspesies terb...

 

English footballer (born 1992) James Tarkowski Tarkowski playing for Burnley in 2017Personal informationFull name James Alan TarkowskiDate of birth (1992-11-19) 19 November 1992 (age 31)Place of birth Manchester, EnglandHeight 6 ft 1 in (1.85 m)[1]Position(s) Centre-backTeam informationCurrent team EvertonNumber 6Youth career Blackburn RoversSenior career*Years Team Apps (Gls)2008–2009 Maine Road 2009–2014 Oldham Athletic 72 (5)2014–2016 Brentford 70 (4)2016�...

 

此條目需要补充更多来源。 (2021年7月4日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:美国众议院 — 网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。 美國眾議院 United States House of Representatives第118届美国国会众议院徽章 众议院旗...

Land owned collectively Poohsticks Bridge in Ashdown Forest, an area of common land. Common land is collective land (sometimes only open to those whose nation governs the land) in which all persons have certain common rights, such as to allow their livestock to graze upon it, to collect wood, or to cut turf for fuel.[1] A person who has a right in, or over, common land jointly with another or others is usually called a commoner.[2] In Great Britain, common land or former commo...

 

TATP redirects here. For Tahrir Alley Technology Park, see The American University in Cairo. For Telecommunication Application Transaction Processing benchmark, see TATP Benchmark. Acetone peroxide Cyclic dimer and trimer examples Acetone peroxide trimer Names IUPAC names 3,3-Dimethyl-1,2-dioxacyclopropane (monomer)3,3,6,6-Tetramethyl-1,2,4,5-tetraoxane (dimer)3,3,6,6,9,9-Hexamethyl-1,2,4,5,7,8-hexaoxacyclononane (trimer)3,3,6,6,9,9,12,12-Octamethyl-1,2,4,5,7,8,10,11-octaoxacyclododecane (tet...

 

Stefan KonstantinRaja SerbiaBerkuasa29 Oktober 1321–musim semi 1322PendahuluStefan Uroš II MilutinPenerusStefan Uroš III DečanskiInformasi pribadiKelahiranc. 1283Kematianmusim semi 1322Mitrovičko Polje, ZvečanDinastiDinasti Nemanjić AyahStefan MilutinIbuHelena Doukaina Angelina (?)AgamaGereja Ortodoks Timur Stefan Konstantin (Abjad Kiril Serbia: Стефан Константин; c. 1283–1322) adalah Raja Serbia yang menjabat dari 29 Oktober 1321 hingga musim semi 1322. Ia adala...

1992 filmThe Inheritance or FuckoffguysgooddayCzech DVD coverDirected byVěra ChytilováWritten byVěra ChytilováBolek PolívkaProduced byPavel SolcCinematographyErvín SandersEdited byJan MattlachMusic byJiří BulisRelease date 1 December 1992 (1992-12-01) Running time120 minutesCountryCzechoslovakiaLanguagesCzechGerman The Inheritance or Fuckoffguysgoodday (Czech: Dědictví aneb Kurvahošigutntag) is a 1992 Czechoslovak comedy film directed by Věra Chytilová.[1] ...

 

Banner in Inner Mongolia, ChinaWest Ujimqin Banner 西乌珠穆沁旗 • ᠪᠠᠷᠠᠭᠤᠨ ᠦᠵᠦᠮᠦᠴᠢᠨ ᠬᠣᠰᠢᠭᠤBannerWest UjimqinLocation in Inner MongoliaShow map of Inner MongoliaWest UjimqinWest Ujimqin (China)Show map of ChinaCoordinates: 44°36′N 117°37′E / 44.600°N 117.617°E / 44.600; 117.617CountryChinaAutonomous regionInner MongoliaLeagueXilin GolBanner seatBalgar GolArea • Total22,380 km2 (8,640 sq ...

 

This article provides insufficient context for those unfamiliar with the subject. Please help improve the article by providing more context for the reader. (July 2017) (Learn how and when to remove this message) Part of a series onCharles Sanders Peirce Bibliography Pragmatism in epistemology Abductive reasoning Fallibilism Pragmaticism as maxim as theory of truth Community of inquiry Logic Continuous predicate Peirce's law Entitative graph in Qualitative logic Existential graph Functional c...

Emperor of the French (r. 1804–1814, 1815) Napoleon Bonaparte redirects here. For other uses, see Napoleon (disambiguation) and Napoleon Bonaparte (disambiguation). NapoleonThe Emperor Napoleon in His Study at the Tuileries, 1812Emperor of the French1st reign18 May 1804 – 6 April 1814SuccessorLouis XVIII[a]2nd reign20 March 1815 – 22 June 1815SuccessorLouis XVIII[a] First Consul of the French RepublicIn office13 December 1799 – 18 May 1804 Born(1769-08-15)15 A...

 

The Court of Appeal for Western Sweden (Hovrätten för Västra Sverige) in Gothenburg. The courts of appeal in Sweden (Swedish: hovrätt) are the second instance on issues relating to criminal cases, contentious cases and other judicial issues that have already been dealt with by a district court. The next and final instance is the Supreme Court (Swedish: Högsta domstolen). The appellate court may in some circumstances require a leave to appeal, meaning they will only proceed with a case i...

 

Adjusting to a new cultural environmentThis article is written like a personal reflection, personal essay, or argumentative essay that states a Wikipedia editor's personal feelings or presents an original argument about a topic. Please help improve it by rewriting it in an encyclopedic style. (April 2024) (Learn how and when to remove this message) Part of a series onImmigration General Immigration by country Immigration policy Illegal immigration History and law Border security Citizenship R...

Ideology perceiving Greeks as a nation The national flag of Greece was officially adopted by the First National Assembly at Epidaurus on 13 January 1822. There is a blue canton in the upper hoist-side corner bearing a white cross; the cross symbolises Eastern Orthodox Christianity. Greek nationalism, otherwise referred to as Hellenic nationalism, refers to the nationalism of Greeks and Greek culture.[1] As an ideology, Greek nationalism originated and evolved in classical Greece.[...

 

Monastery in Saône-et-Loire, France 46°46′12″N 4°53′13″E / 46.77°N 4.887°E / 46.77; 4.887 The church of the former abbey The Priory of Saint-Marcel-lès-Chalon, earlier the Abbey of Saint-Marcel-lès-Chalon (French: Abbaye Saint-Marcel-lès-Chalon), was a monastery located in the present commune of Saint-Marcel near Chalon-sur-Saône, Saône-et-Loire, eastern France. It was founded in c. 590 as a Benedictine abbey. Somewhere between 979 and 988 it became p...