【Alfrescoカスタム活用紹介】AlfrescoとKafkaの統合

オープンソースの企業向けコンテンツ管理システム「Alfresco」のカスタム活用例として、Alfrescoでイベントが発生した際にApache Kafkaを介して処理を行う方法について紹介します。

「Alfresco」とは

Alfrescoとはエンタープライズ向けコンテンツ管理システムです。世界中で数多くの導入実績があり、オープンソースECM分野で世界市場シェア1位を誇ります。

Alfrescoの概要についてはこちらも参照ください。

→Alfresco(アルフレスコ)とは

AlfrescoとKafkaの統合について

Apache Kafkaについて

Apache Kafkaはスケーラビリティに優れた分散メッセージキューです。
メッセージキューとは、システム間のデータの受け渡しを仲介し、データを一時的に保持(キューイング)するミドルウェアです。
Kafkaは処理性能を重視したメッセージキューであり、複数台のマシンでクラスタを構成して分散処理を行うことで、高いスループットを発揮します。
後からクラスタにマシンを追加することで、処理性能とデータ保持容量をスケールアウトすることもできます。
また、Kafkaはクラスタ内でデータを複製するため、一部のマシンに障害が発生してもデータを失うことなく処理を継続できます。

AlfrescoとKafkaの統合について

Alfrescoでノードが作成、更新、または削除されたときにApache Kafkaトピックにイベントを発行するAlfrescoリポジトリ層のカスタマイズを行うことができます。
継承が有効または無効になったときなど、権限の変更に対してもイベントが生成されます。
Alfrescoへのデータ流量の急激な増加により、サービスの負荷が急増することがありますが、Apache Kafkaはこのようなサービス間で、大量のデータを受け渡すためのハブとして活用されています。
Webサービスやネットワークに接続されたデバイスは、大量のデータをリアルタイムに生成を行いますが、このようなデータをリアルタイムに処理するストリーミングアプリケーションにおいて、データ量の急激な増加に対応するためのキューとしてApache Kafkaが活用されています。
Apache KafkaはLogstashおよびElasticsearchに接続して、メッセージ情報をインデックス化します。

最後に

Alfrescoでは、今回ご紹介した他にも、非常に多くの便利な機能を利用できます。

メインとなる強力なコンテンツ管理機能に加え、さまざまな便利機能を併用することで、さらに効率的なコンテンツ管理を行えます。

弊社にご連絡をいただければ、お客様の環境に合った適切なご提案も行えます。まずは、お気軽にお問い合わせください。
→お問い合わせ(もっと知りたい方へ)

参考元サイト
https://github.com/jpotts/alfresco-kafka