logo

Kafka Konuları

Bir önceki bölümde Apache Kafka, mesajlaşma sistemi ve akış süreci hakkında kısa bir giriş yapmıştık. Burada Kafka'nın temel kavramlarını ve rolünü tartışacağız.

Konular

Genel olarak konu, belirli bir başlığa veya birbiriyle ilişkili bazı belirli fikirlere verilen bir isme atıfta bulunur. Kafka'da konu sözcüğü, belirli bir veri akışını depolamak ve yayınlamak için kullanılan bir kategoriyi veya ortak adı ifade eder. Temel olarak Kafka'daki konular veritabanındaki tablolara benzer ancak tüm kısıtlamaları içermez. Kafka'da istediğimiz kadar n sayıda konu oluşturabiliriz. Kullanıcının tercihine bağlı olarak ismiyle tanımlanır. Bir üretici konulara veri yayınlar ve tüketici bu verileri konuya abone olarak okur.

Bölümler

Bir konu, konunun bölümleri olarak bilinen birkaç parçaya bölünmüştür. Bu bölümler bir sıraya göre ayrılmıştır. Veri içeriği konu içindeki bölümlerde saklanır. Bu nedenle konu oluştururken bölüm sayısını belirtmemiz gerekiyor (sayı isteğe bağlıdır ve daha sonra değiştirilebilir). Her mesaj, Ofset değeri olarak bilinen artan bir kimliğe sahip bölümler halinde saklanır. Siparişi Ofset değeri yalnızca bölüm içinde garanti edilir, bölüm genelinde garanti edilmez. Bir bölümün uzaklıkları sonsuzdur.

Not:Bir bölüme yazılan veriler asla değiştirilemez. Değişmez. Ofset değeri her zaman artan bir durumda kalır, hiçbir zaman boş bir alana geri dönmez. Ayrıca veriler yalnızca sınırlı bir süre için bir bölümde tutulur.

Bir konuyu bölümleriyle anlamak için bir örnek görelim.

Kafka Konuları

Diyelim ki, 0,1 ve 2 olmak üzere üç bölüm içeren bir konu. Her bölümün farklı ofset numaraları var. Veriler, Bölüm 0'ın ofset 1'indeki verilerin Bölüm 1'in ofset 1'indeki verilerle herhangi bir ilişkisinin olmadığı her bölümdeki her uzaklık arasında dağıtılır. Ancak Bölüm 0'ın konum 1'indeki veriler, Bölüm 0'ın uzaklık 2'sinde yer alan verilerle ilişkilidir.

Komisyoncu

İşte Apache Kafka'nın rolü geliyor.

Kafka kümesi, aracılar veya Kafka aracıları olarak bilinen bir veya daha fazla sunucudan oluşur. Aracı, birden çok bölümüyle birden çok konuyu barındıran bir kapsayıcıdır. Kümedeki aracılar yalnızca bir tamsayı kimliğiyle tanımlanır. Kafka komisyoncuları aynı zamanda şu şekilde de bilinir: Önyükleme komisyoncuları çünkü herhangi bir aracıyla bağlantı kurmak tüm kümeyle bağlantı anlamına gelir. Bir aracı tüm verileri içermese de kümedeki her aracı diğer tüm aracıları, bölümleri ve konuları bilir.

Kafka Konuları

N sayıda bölüme sahip bir konuyu içeren şekilde bir komisyoncu bu şekilde görünür.

Örnek: Komisyoncular ve Konular

Broker 1, Broker 2 ve Broker 3 olmak üzere üç aracıdan oluşan bir Kafka kümesi olduğunu varsayalım.

Kafka Konuları

Her komisyoncu, 0,1 ve 2 olmak üzere üç bölüme sahip Konu-x adlı bir konuyu tutar. Tüm bölümlerin yalnızca bir komisyoncuya ait olmadığını, her zaman her komisyoncu arasında dağıtıldığını (miktarına bağlı olarak) unutmayın. Aracı 1 ve Aracı 2, 0 ve 1 numaralı iki bölüme sahip başka bir konu-y içerir. Dolayısıyla Aracı 3, Konu-y'den herhangi bir veri tutmaz. Ayrıca aracı numarası ile bölüm numarası arasında hiçbir ilişkinin bulunmadığı sonucuna varılmıştır.