Sohbette: Debziium ve CDC'de Gunnar Morling

Portakalkafa

Global Mod
Global Mod
Java topluluğunda, Java spesifikasyonları (JSR) ve açık kaynak projeleri taleplerine olan bağlılığıyla gelişimi teşvik eden birçok ilginç insan var. Burada bazılarını sunmak ve onlarla projeleri hakkında konuşmak istiyorum. Bu kez Gunnar Morling ile değişim verilerinin ve açık kaynak Debziium projesinin satın alınmasından bahsettim.

Thorben Janssen:
Tekrar sohbet ettiğiniz için teşekkürler. Biri veya diğeri, Bean'in 2.0 doğrulama spesifikasyonu aracılığıyla önceki röportajı sizinle kaybetmiş olabilir. Kendinizi tekrar tanıtabilir misin?

Gunnar Morling:
Red Hat için açık kaynaklı bir yazılım geliştiricisi olarak çalışıyorum. Her şeyden önce, Hazırda Bekletme ekibinin bir parçası olarak, Hibernate Validatore ve Hibernate Search gibi projeler üzerinde çalıştım ve Bean Valvitation 2.0'ın (JSR 380) gelişimini yönlendirdim. Bu arada, Java-ee platformunun bir parçası olarak, Jakarta EE'ye göre fasulyenin doğrulama özellikleri de Eclipse Vakfı'nın çatısı altında mahkum edilecek ve daha da geliştirilecektir.

İki yıl boyunca modifikasyon verilerinin edinilmesi için açık kaynaklı bir platform olan Debziium üzerinde çalıştım. Belki bir ya da diğer okuyucu beni Javaland gibi konferanslar veya harita ve devektif gibi diğer projelerdeki işim olarak tanıyor.

JANSSEN: Mikro hizmetler giderek daha fazla popülerlik kazandığından, farklı veri kaynakları arasında veri alışverişi üzerine modeller tartışılmıştır. Bunlardan biri veri yakalamasını değiştirdi (CDC). Tam olarak nedir ve arkasındaki temel fikir nedir?

Morling:
Modifikasyon verilerini yakalama fikri hızlı bir şekilde açıklanır: Örneğin bir veritabanında bir şeyler her zaman değişirse, bir müşteri bir teslimat oluşturulur, güncellenir veya ortadan kaldırırsa, bu değişiklik bir olay olarak ilgili tüketicilere kaydedilir ve dağıtılır. Bu olaylar, ilgili verilerin konusunun eski ve yeni koşullarını ve zamansal değişim dizisi, işlemlerin kimliği ve diğerleri gibi meta verileri tanımlar. Çözünmüş bir bağlantı anlamında, değişim olayları genellikle mesaj komisyoncusu aracılığıyla Apache Kafka gibi mesajların mesajları aracılığıyla tüketicilere aktarılır.

JANSSEN: Peki CDC için ideal bir uygulama senaryosu nasıl görünür?

Morling:
CDC uygulamaları son derece farklıdır:

Bir yandan, doğrudan olaylara ve örneğin, bir önbellekten karşılık gelen sakatlık seslerine tepki vermek mümkündür. Akış sorgusu da bu kategoriye dahil edilmiştir: önceden tanımlanmış sorgular (örneğin, son 60 dakikada ürün kategorisindeki mobilyaların biriken siparişinin değeri ne kadar yüksek? “), Her zaman ilgili bir değişiklik olayı veya” oluşturulan satın alma siparişi “. Bu akış sorununun sürekli güncellenen sonuçları, bir uyarı için bir uyarı için kullanılabilirse, bir uyarı, belirli bir uyarıda bulunabilir.

Öte yandan, değiştirme olayları verileri diğer depolama verilerini güncellemek için ve sürekli olarak orijin veritabanı ile kullanılabilir. Bu, Elasticsearch'te tam bir metin arama dizin, bir veri ambarı veya analiz amacıyla diğer veritabanları olabilir. Ancak denetim kayıtları veya bir CQRS mimarisinde optimize edilmiş okuma veri modelleri (komut sorgusunun sorumluluğunun ayrılması) CDC aracılığıyla da oluşturulabilir.

Mikro hizmetler bağlamında, farklı hizmetler arasındaki verilerdeki değişiklikleri yaymak için veri ediniminin değiştirilmesi kullanılabilir. Bu nedenle hizmetler, yerel veritabanlarındaki diğer hizmetlerin verilerinin bir kopyasını oluşturabilir ve bu da hizmetler arasında senkron görünümlerden kaçınabilir.

JANSSEN: Debzium projesi ile CDC modellerinin bir uygulamasını sunuyor. Tam olarak nasıl çalışır ve hangi veri kaynaklarıyla kullanabilirim?

Morling:
Debziium, SO -Called Log CDC'yi uygular, bu da değişiklik olaylarının kaynağının veritabanı işlemleri kayıtları olduğu anlamına gelir. Bu, yoklama gibi alternatif yaklaşımlarda büyük avantajlar sunar (yani yeni veya değiştirilmiş veri kayıtlarını tanımlamak için sorgunun tekrar tekrar yürütülmesi):

  • Aynı kayıt ve verilerin ortadan kaldırılmasının ardışık kısa güncellemeleri de dahil olmak üzere tüm değişikliklerin kaydedileceği garanti edilir.
  • Değişim olayları, diğer sorulardaki performans üzerinde olumsuz bir etkisi olmadan kayıt tarafından çok verimli bir şekilde belirlenir.
  • Veri şemasında “son güncellenmiş” sütun olarak değişiklik yoktur.
  • Yapılandırma ve veritabanına bağlı olarak, değiştirilmiş ve meta veri verilerinin bir önceki durumunu, bir modifikasyon zaman damgası, nedensel sorgu vb.
Debziium, Kafka konektörlerinin uygulanması ve yürütülmesi için bir çerçeve olan Kafka Connect'e dayanmaktadır; bu, diğer şeylerin yanı sıra, Kafka bağlantı isteklerini gruplandırarak konektörlerin (konfigürasyon, başlangıç, durdurma vb.), İzleme ve yüksek kullanılabilirliği sağlayan bir çerçeve. Hatalar toleransı da dikkate alınır: eğer bir konektör düşerse veya bir güncelleme nedeniyle yeniden başlatılması gerekiyorsa, değişiklik olayları kaybolmaz, ancak kayıt sadece son işlem tarafından okunur. Kafka Connect bağlamında, örneğin diğer veritabanlarında, elastiarch, küme hadoop vb.

Kafka Connect aracılığıyla dağıtıma ek olarak, Debziium, kullanıcıların Amazon Kinesis'teki değişiklik olaylarını kullandıkları herhangi bir Java uygulamasında kütüphane olarak da kullanılabilir.

Debziium, MySQL, PostgreSQL, SQL Server ve MongoDB gibi çeşitli veritabanlarını destekler. Topluluk şu anda bir Apache Cassandra konnektörü üzerinde çalışıyor.

Janssen: Debziium'u kullanmak istersem ne yapmalıyım?

Morling:
Bir başlangıç noktası, konteynerin görüntüleri olarak gerekli bileşenleri (MySQL, Apache Kafka, Kafka Connect, Debezium gibi bir veritabanı) sağlayan Debzium öğreticisinin okunması olabilir ve bir konektörün konfigürasyonundan Kafka'daki değişiklik olaylarını görüntülemeye yönelik adımları gösterir.

Kubernetes/OpenShift'e dayalı üretken kullanım için, Kafka ve Kafka Connect'i yönetmek için bir Kubernetes operatörü sağlayan Strimzi projesini öneriyoruz. Bunun için Red Hat'tan ticari destek var; Bu aynı zamanda Debziium'un kendisi için de geçerlidir (şu anda geliştirici önizlemesi olarak mevcuttur).

Janssen: DeBes şu anda 0.9 sürümünde. Üretken kullanım için zaten uygun mu? Sürüm 1.0 için hala eksik olan nedir?

Morling:
Topluluk zaten üretimde çeşitli büyük ölçekli Debzium konektörlerini kullanıyor. Kullanıcılar, bazen yüzlerce veritabanı ile dağıtımları rapor eder. Bir geliştirme ekibi olarak, yeni sürümlerdeki önceki sürümlerle uyumluluğu garanti etmeye ve en düzenli olası güncellemeye izin vermeye çok dikkat ediyoruz. Şu anda çeşitli konektörlerin olay formatlarının bazı standartlaştırmalarını ve Cassandra konnektörünün ilk sürümünü içeren 0.10 sürümleri üzerinde çalışıyoruz.

Debziium 1.0 daha sonra takip etmelidir, burada dikkat esasen konektörlerin stabilitesini daha da geliştirmek için konektörlerin yapılandırma seçenekleri ve otomatik test süitinin genişlemesi ile ilgili standartlaştırmalar üzerinde olacaktır.

Gelecekteki olası gelişmeler için bazı anahtar kelimeler, Clouude olaylarının standardı, diğer mesaj mesajları ile entegrasyon, belirtilen ve diğer veri görüntülemelerinin oluşturulması için destektir. Topluluğun ihtiyaçlarına çok dayanıyoruz ve yol haritasını sürekli olarak uyarlıyoruz.

Janssen: Proje hakkında daha fazla bilgi edinebilirim?

Morling:
Web sitemiz merkezi başlangıç noktasıdır. Konektörler buraya indirilebilir; Hızlı bir başlangıç için bir referans dokümantasyon ve yukarıdaki öğretici var. Blogda yeni sürümler ve belirli CDC kullanım durumlarında demo gibi diğer konular hakkında bilgi veriyoruz.

Gerekirse, topluluk bir posta listesi ve bir sohbet odası aracılığıyla sorular için kullanılabilir ve elbette bulabilirsiniz @Debeziium Twitter'da.

JANSSEN: Peki kendinizi nerede bulabilirsin?

Morling:
Bu kanalların altında ve ayrıca Twitter'da @Gunnormorling ulaşılabilir.

Janssen: Röportaj ve Debziium ile sürekli başarı için teşekkürler.


((()))
 
Üst