Kafkaブローカーのログファイルの構造と動作原理
1. パーティションディレクトリ内のファイル構造
Kafkaのメッセージストレージは、パーティション(Partition)を中心に構築されています。各パーティションは物理的なディレクトリに対応し、そのディレクトリ内にはコアログファイル、インデックスファイル、トランザクション関連ファイル、メタデータファイルの4種類のファイルが含まれます。これらのファイルが連携する ...
6月26日 22:30 投稿
RabbitMQメッセージキュー基礎
メッセージミドルウェアの概要
メッセージミドルウェアは、メッセージの転送過程においてメッセージを保持するコンテナです。メッセージを送信元から宛先へ中継する際に仲介者の役割を果たします。キューの主な目的はルーティングとメッセージ配信の保証です。受信者が利用できない場合、メッセージキューはメッセージを保持し、正常に配信できるまで待機します。もちろん ...
6月19日 22:36 投稿
大規模IT企業における5年目エンジニアの技術面接体験談
大規模検索ログ解析におけるTopN問題の解法
大容量ファイルから頻出検索語を抽出する手法について考察する。メモリ制約下での効率的な処理が鍵となる。
分散処理による解決策
from collections import defaultdict
import heapq
def process_chunk(file_path, chunk_size=1024):
counter = defaultdict(int)
with open(file_path) as f:
while True:
...
6月18日 19:15 投稿
ZooKeeperによるサービス発見の実装(C++)
リポジトリ:git@github.com:ccx19930930/services_register_and_discovery.git
参考リンク:https://www.cnblogs.com/haippy/archive/2013/02/21/2920280.html
down_service_mgr.h
1 #ifndef _DOWN_SERVICE_MANAGER_H_
2 #define _DOWN_SERVICE_MANAGER_H_
3
4 #include "base_class.h"
5
6 class CDownServiceManager : CUnCopyable
7 {
8 public:
...
6月14日 22:49 投稿
Redisの核心技術とベストプラクティス
漸進的リハッシュ
漸進的リハッシュの実行時、キーバリューペアの操作に基づいてデータ移行を行うだけでなく、Redis自体にも定期的なタスクがリハッシュを実行します。キーバリューペアの操作がない場合、このタスクは周期的に(例えば100msごと)新しいハッシュテーブルに一部のデータを移動させ、これにより全体のリハッシュプロセスを短縮できます。
整数配列と圧縮リ ...
6月13日 16:32 投稿
キャッシュシステムにおける3つの問題:ペネトレーション、ブレークダウン、雪崩の原理と解決策
キャッシュペネトレーション
キャッシュペネトレーションは、存在しないデータを照会する状況を指します。キャッシュはヒットしない場合に書き込まれるため、またエラー処理の観点からストレージ層からデータが見つからない場合にはキャッシュに書き込まないため、このような存在しないデータのリクエストは毎回ストレージ層に到達してしまいます。これによりキャッシュの ...
6月8日 19:39 投稿
Apache Flinkの分散ストリーム処理基盤
ステート管理の設計特性
インメモリ状態管理: 高速アクセスが可能だが障害耐性に課題
分散システム状態管理: 耐障害性が高いがレイテンシ増加のトレードオフ
コアアーキテクチャ特性
高スループット・低レイテンシ処理
毎秒数百万イベント処理をミリ秒級レイテンシで実現
時間概念モデル
Flinkは二つの時間セマンティクスを提供:
処理時間(Processing Time): データが ...
6月5日 21:08 投稿
ZooKeeper、KafkaクラスタとFilebeat+Kafka+ELKアーキテクチャの実装ガイド
一、ZooKeeper
1.1 概要
ZooKeeperは、分散アプリケーションの管理フレームワークです。オープンソースの分散型サービスで、分散環境における一貫性の問題を解決するためのApacheプロジェクトです。
1.2 ZooKeeperの役割
主な役割として、分散アプリケーションクラスタにおける一貫性の問題解決があります。ファイルシステムとして、各種分散アプリケーションの登録とメ ...
5月31日 00:36 投稿
分散型一意ID生成方式の実装方法
グローバル一意IDの設計特性
グローバル一意性
分散システム全体で重複しない一意な識別子を生成する必要があります。
高可用性
水平スケーリングやクラスタ構成により、ノード障害時でも継続的なID生成を保証します。
セキュリティ
業務ロジックとは独立した専用コンポーネントとして設計し、複数サービス間での共有を可能にします。
高パフォーマンス
短時間で大 ...
5月29日 08:10 投稿
Spring Bootの@Scheduledと分散環境における注意点
基本的な実装と課題
Spring Bootの@Scheduledアノテーションを使用する場合、デフォルトではシングルスレッドで処理が実行されます。この仕様により、処理時間が長いタスクが存在する場合、以下の2つの問題が発生します:
タスクの実行遅延
スレッドの競合による処理停止
@Component
@EnableScheduling
public class ScheduledTask {
@Scheduled(cron = "0/5 * * * * ...
5月28日 15:52 投稿