JD Finance Dağıtılmış Veri Ara Yazılım CDS'si

Geleneksel ilişkisel veritabanı (RDBMS), performans yerine veri tutarlılığını vurgular ve şu anda tüm şirketlerin temel işleri için ilk tercihtir. Bununla birlikte, iş veri hacminin hızlı büyümesiyle, bağımsız veritabanları, yüksek eşzamanlılık ve yüksek performanslı erişim gereksinimlerini karşılayamayan bariz performans ve kapasite darboğazlarına sahiptir.Bu nedenle, geleneksel bağımsız veritabanlarının eksikliklerinin nasıl önleneceği şu anda büyük bir endişe kaynağıdır. Alt veritabanı ve alt tablo ürünleri bu arka plan altında ortaya çıkmıştır.Uygulama yöntemine göre, esas olarak ORM çerçeve katman alt tablosu (MyBatis, Hibernate), Spring AOP tabanlı alt veritabanı alt tablosu ve JDBC API katmanına dayalı alt veritabanı olarak ikiye ayrılır. Uygulama ve veritabanı arasındaki aracı katmanına dayalı alt tablo ve veritabanı alt tablosu. JD Finance ara katman ekibi, bu uygulama yöntemlerinin artılarını ve eksilerini analiz ettikten sonra, müşteri tabanlı alt veritabanı ve alt tablo ara yazılım CDS'sini, yani Tamamlanmış Veritabanı Parçalama'yı kendi iş özelliklerine göre gerçekleştirdi.

CDS sistem çerçevesi

CDS, müşteri geliştirmeye dayalı bir alt veritabanı ve alt tablo ara yazılım ürünüdür.JDBC standart API'sini uygular, alt veritabanı alt tablosu, okuma-yazma ayrımı, veri çalıştırma ve bakım ve diğer birçok işlevi destekler, yüksek performans, yüksek eşzamanlılık ve yüksek güvenilirlik sağlar. Veri yönlendirme erişim hizmetleri, iş sistemlerine neredeyse sıfır maliyetle erişilebilir.Şu anda, üç veritabanı kümesini desteklemektedir: MySQL, Oracle ve SQL Server.

CDS sistemi, Şekil 1'de gösterildiği gibi temel olarak birkaç modüle bölünmüştür:

Şekil 1 CDS sistem mimarisi şeması

  • CDS Sürücüsü: JDBC standart API'sini, alt veritabanı ve tablo için hafif ara yazılım, Jar paketi biçiminde uygulamaya entegre eder.

  • CDS Sunucusu: Harici tutarlılık hizmetleri sağlayan yüksek kullanılabilirlikli hizmet kümesi, alt veritabanı ve alt tablo kümesi yapılandırma hizmet merkezi. CDS Sürücüsü, RESTful hizmetleri aracılığıyla CDS Sunucusundan kuralları alır ve CDS Konsolu tarafından oluşturulan uygulama olayları da CDS Sunucusu aracılığıyla uygulamaya gönderilir.

  • CDS Konsolu: Temel olarak küme yapılandırma yönetimi, çevrimiçi uygulama performansı izleme ve uygulama yapılandırması çevrimiçi değişiklik push gibi işlevleri içeren CDS küme konsolu.

  • CDS operasyon ve bakım araçları: küme veri sorgulama ve veri değiştirme aracı MyDB, küme ortamı kontrol aracı, tam veri taşıma platformu ve artımlı veri senkronizasyon işlemleri vb.

  • CDS Veri Merkezi: Çevrimdışı veri çok boyutlu sorgu, veri istatistikleri ve diğer işlevleri sağlamak için ElasticSearch + HBase çerçevesini kullanın.

CDS özellikleri

CDS sistemi, konfigürasyon servis merkezi CDS Sunucusu, işletim ve bakım konsolu CDS Konsolu ve çok güçlü bir veritabanı ve alt tablo temel veri hizmeti sağlayan zengin bir veri işlem ve bakım araç seti ile birleştirilmiş istemci tarafı alt veritabanı ve alt tablo ara yazılımı CDS Sürücüsüne dayanmaktadır. .

Şekil 2 CDS sistemi işlevsel özellikleri

Alt veritabanı ve alt tablo

JD Finance'in çoklu iş kollarının ihtiyaçlarını karşılamak için CDS, temel olarak aşağıdaki özellikleri içeren çeşitli alt veritabanı ve alt ölçüm çözümleri sunar:

  • Segmentasyon anahtarı: Tek sütunlu segmentasyon anahtarını, bileşik segmentasyon anahtarını (çok sütunlu kombinasyon), kademeli segmentasyon anahtarını (çok seviyeli yönlendirme kuralları) ve sorgu segmentasyon anahtarını (çok boyutlu sorgu) destekler.

  • Yönlendirme stratejisi: Karma, modül ve sayılar, tarihler ve dizeler gibi veri türleri aralığının yönlendirme stratejisini destekler. Aynı zamanda, kullanıcının segmentasyon anahtarı sütunu için özel bir yönlendirme hesaplama sürecine sahip olması gerekiyorsa, kullanıcı tanımlı bir yönlendirme algoritması (Groovy yöntemi) uygulanabilir.

Şekil 3, iş verilerini zaman aralığına göre ilk kez yatay olarak bölen basamaklı bölünmüş anahtarların bir uygulama şemasını açıklar; belirli bir zaman aralığındaki iş verileri çok büyük olduğunda, verilerin bu kısmı herhangi bir bölünmüş kurala göre bölünebilir İki kez eşit olarak bölün. Özel yönlendirme algoritmalarıyla birlikte çok seviyeli yönlendirmenin uygulanması, iş erişimi için sınırsız olanaklar sağlar.Kullanıcılar, kendi iş ihtiyaçlarına göre en uygun veri bölme şemasını seçebilirler.

Şekil 3 CDS yatay bölme

Ayrımı oku ve yaz

Yüksek veri erişimine sahip İnternet servisleri için okuma-yazma ayrımı çok önemlidir. Çoğu işletme için, veritabanı erişiminin ana darboğazı, veri sorgusunda yatmaktadır.Bir ana ve birden çok slave'i yapılandırarak, veritabanının sorgu baskısını paylaşmak için salt okunur kütüphaneleri kullanmak, iş sisteminin performans baskısını hafifletebilir.

CDS, tek ana, çok bağımlı veritabanı çerçevesini yüksek düzeyde kullanılabilir bir veritabanı grubuna özetler ve dış dünyaya şeffaf veri erişim hizmetleri sağlar. Bir işletme bir veritabanı grubuna eriştiğinde, güncelleme işlemi doğrudan yazma veritabanına erişir; sorgu işlemi, küme tarafından yapılandırılan veritabanı okuma ağırlığına göre karşılık gelen okuma veritabanına erişir.

Bir okuma kitaplığı anormal bir şekilde başarısız olursa ve hizmet sağlayamazsa, CDS Sürücüsü erişim için diğer okuma kitaplıklarını otomatik olarak seçer ve okuma kitaplığını okuma kitaplıkları listesinden geçici olarak kaldırır; kitaplık hizmeti sürdürdüğünde, CDS Sürücüsü yeniden katılacaktır. İçindeki mevcut okuma kitaplıklarının listesi.

Şekil 4 CDS okuma ve yazma ayrımı

Küresel olarak benzersiz sekans

Alt veritabanı ve alt tablo senaryosunda, yerel veritabanı, küresel benzersiz dizi oluşturma gerçekleştiremez. CDS, küresel olarak benzersiz sekans yönetimini gerçekleştirir ve CDS Konsolu aracılığıyla uygulama sekans değerlerini sorgulayıp yönetebilir ve olay itme yoluyla iş sekansı değerlerini gerçek zamanlı olarak değiştirebilir.

CDS global dizisi esas olarak global benzersizliği sağlamak için kullanılır.Her uygulama sunucusunun CDS Sürücüsü, global diziye eşzamanlı erişim baskısını azaltmak için bir sıra değerini önbelleğe alır; aynı zamanda, aynı uygulama sunucusunun sıra değerlerinin sıralı olmasını ve genel sıra değerinin garanti edilmemesini sağlayabilir Düzenli.

Aynı zamanda CDS, alt veri tabanına ve alt tabloya karşılık gelen alt tablo dizisini de destekler, bu da global sıra yönetiminin tek nokta sorununu önleyebilir ve global benzersizlik uygulama tarafından garanti edilir.

Uygulama etkinliği itme

CDS Konsolu aracılığıyla, uygulama sürecinin bağlantı havuzunu, yavaş ifadeleri, sürücü yapılandırmasını ve JVM bilgilerini gerçek zamanlı olarak izleyebilirsiniz; aynı zamanda CDS Sürücüsü, uygulama süreci bilgilerini gerçek zamanlı olarak sayacak ve CDS Konsolu tarafından gönderilen artımlı kural değişikliklerini, sıra güncellemelerini ve yapılandırma bilgileri değişikliklerini alacaktır. Olay, olay işleme, uygulamayı yeniden başlatmadan gerçek zamanlı olarak tamamlanabilir.

Şekil 5 Uygulama olayı push

Diğer özellikler

  • İşletim platformu: CDS işletim platformu, Storm tarafından bağımsız olarak geliştirilmiş, büyük verilerin parçalanmış paralel geçişi ve akış veri senkronizasyonu gibi işlevler sağlayan dağıtılmış bir iş işleme çerçevesidir. CDS işletim platformu aracılığıyla, tek veritabanından alt veritabanına ve tabloya, veritabanı ve tablodan tek veritabanına, veritabanından tabloya ve veritabanına ve veritabanı ve tablodan HBase'e gibi çeşitli veri taşıma gereksinimlerini verimli bir şekilde tamamlayabilirsiniz.

  • Dağıtılmış işlem hizmeti: İş yatay olarak bölündükten sonra, dağıtılmış veritabanının güçlü tutarlılığını garanti etmek zordur ve sektörde iyi bir çözüm yoktur. BASE modeline dayalı olarak, CDS, MySQL binlog'u ayrıştırarak işlem ters telafisini gerçekleştirir.Kullanıcılara tamamen şeffaftır.İkinci seviyede tutarsızlık zaman penceresi kontrol edilir.İşletmenin son durumu işlem başarısızlık durumudur ve işletme hizmeti işlem başarısızlığının anormalliğini algılayabilir.

  • Veri merkezi: Alt veritabanı ve alt tablo, iş sisteminin yüksek eşzamanlı erişim performansını büyük ölçüde artırabilir, ancak çok boyutlu sorgu, ortak sorgu, karmaşık SQL sorgusu vb. Gibi bazı erişim kısıtlamaları getirecektir. Arka uç işletim sistemi, iş veritabanında veri istatistikleri gerçekleştirmelidir ve genellikle çok boyutlu sorgu ve ortak sorgu için gereksinimler vardır. CDS veri merkezi, operasyonel verilerin çok boyutlu sorgulanması ve veri istatistikleri gibi işlevler sağlayabilen ElasticSearch + HBase çerçevesini kullanır.

CDS ilkesine genel bakış

CDS Sürücüsü, CDS ara yazılımının temel modülüdür.JDBC standart API'sini uygular ve veri yönlendirme, bağlantı havuzu yönetimi, okuma-yazma ayrımı ve anormal alarmlar gibi işlevleri tamamlamak için uygulama tarafında Jar paketi şeklinde konuşlandırılır.

Şekil 6'da gösterildiği gibi, CDS Sürücüsü tarafından sağlanan işlevler esas olarak birkaç modülü içerir:

Şekil 6 CDS sürücü mimarisi şeması

  • SQL ayrıştırma: CDS, açık kaynaklı SQL ayrıştırıcı JSqlParser'ı kullanır ve özel makrolar için destek, belirlenmiş yürütme gruplarının sağlanması, sonuç kümelerinin boyutunu sınırlama ve belirlenmiş bölümleme anahtarı konumlandırma dahil olmak üzere işlevlerini temelde optimize eder ve genişletir. Aynı zamanda, CDS Sürücüsü, SQL ayrıştırma nesnesini önbelleğe alma mekanizması yoluyla SQL ayrıştırmasının neden olduğu performans kaybını büyük ölçüde azaltır.

  • Bağlantı havuzu yönetimi: CDS, JD Finance tarafından bağımsız olarak geliştirilen WangyinCP bağlantı havuzunu kullanır ve ayrıca endüstride yaygın olarak kullanılan BoneCp, C3p0, DHCP gibi bağlantı havuzlarını tam olarak destekler.

  • Yavaş cümle istatistikleri: CDS Sürücüsü, iş sorgu süresi belirtilen eşiği gerçek zamanlı olarak aşan SQL cümlelerini sayar; bu, iş optimizasyonu ve yavaş cümlelere dayalı performans ayarı için uygundur.

  • Okuma-yazma ayrımı: CDS Sürücüsü, küme yapılandırmasının okuma-yazma ayırma kurallarına göre uygulama erişiminin okuma-yazma ayrımını tamamlar.

  • Zayıf XA işlemi: CDS sürücüsünün kendisi yalnızca zayıf XA desteği uygular, yani alt kitaplığın yürütülmesi yürütme aşamasında başarısız olduktan sonra, işlemde yürütülen diğer alt kitaplık işlemleri geri alınır; ve teslim aşamasında, alt kitaplık tamamlama başarısız olursa, Daha sonra önceden taahhüt edilen alt veritabanı geri alınamaz; BASE'in nihai başarısızlığına dayalı dağıtılmış işlem tazminatı, CDS'nin dağıtılmış işlem tazmin hizmeti aracılığıyla gerçekleştirilebilir.

  • Özel yönlendirme algoritması: CDS'nin birkaç varsayılan yönlendirme stratejisi işletmenin özel gereksinimlerini karşılayamadığında, Groovy sözdizimi iş ihtiyaçlarına göre özel yönlendirme kurallarını uygulamak için kullanılabilir.

CDS en iyi uygulaması: ticaret sisteminin sorunsuz genişletilmesi

2015 yılında, JD Financial Trading System'in işlem emri hacmi, veritabanı erişimi ve depolama darboğazına ulaştı.DBA, tek veritabanı kapasitesinin birkaç aya kadar büyümeyi destekleyebileceğini değerlendirdi, bu nedenle yatay bölme gerekli.

Yatay bölünmüş ihtiyaç değerlendirmesi

  • İş verilerinin hacmi, veritabanı depolama kapasitesindeki darboğaza neredeyse ulaşıyor;

  • Yatay bölme, orijinal iş akışı verilerini taşımaz ve orijinal veritabanını sorgu işlevleri sağlamak için geçmiş veritabanı olarak kullanır;

  • Sipariş eşleme tablosu, yatay bölme için alt veri tabanına ve alt tablo kümesine tamamen taşınır;

  • Ticaret sistemi çok önemli olduğundan, yatay bölme işlemi sırasında işletmenin sürekli olarak kullanılabilir olmasını sağlamak gerekir, bu nedenle kapanmadan sorunsuz bir başlangıç yapmak gerekir.

CDS pürüzsüz genişleme planı

İş tablosu bölme stratejisi

İşlem işinin özü boru hattı verileridir ve aynı zamanda bazı konfigürasyon verileri vardır, ikisi arasında herhangi bir ilişkili sorgu yoktur ve veri tabanları arası işlemler, iş katmanı tarafından önlenebilir. Yapılandırma tablosunun veri hacmi çok büyük değildir ve yatay olarak bölünmesine gerek yoktur.Bu tür veriler uygulamaya şeffaf olan bir çalışma grubuna yerleştirilebilir; iş akışı verilerinin hacmi çok büyüktür ve sipariş numarasına göre yatay olarak bölünmesi gerekir.

Şekil 7 İş tablosu alt tablo stratejisi

Ticari geçmiş veri istatistiklerinin ihtiyaçlarını dikkate alan yatay bölme şeması 1 + 10 modelini dikkate alır: orijinal tarihsel rezervuar akış verileri korunur ve yeni akış verileri yeni eklenen 10 alt tabloya eşit olarak dağıtılır.

Şekil 81 + 10 veritabanı bölme stratejisi

Alt veritabanı ve alt tablo yönlendirme stratejisi

Ticaret sisteminin iş sorgu koşullarının tümü sipariş numarasını içerir, bu nedenle iş sorgusu sipariş numarası, veritabanı ve tablo bölme için segmentasyon anahtarı olarak kullanılır. İş emri numarası alanının içeriği şu şekildedir: sürüm numarası, sırasıyla geçmiş veri tabanına ve yeni kitaplığa yönlendirilen birinci seviye yol olarak kullanılır; alt veri tabanı alt tablo konumu ikinci seviye yol olarak kullanılır ve alt veri tabanı alt tablosu şube alt tablo konumuna göre konumlandırılır.

Şekil 9 Alt tablo yönlendirme kuralları

Yatay bölünmeden sonra, işletmenin işlem sipariş numarasının küresel olarak benzersiz olduğundan emin olması gerekir CDS iki sıra oluşturma yöntemi sağlar: küresel olarak benzersiz sıra ve alt tablo benzersiz dizisi. Ticaret sistemi, iş özelliklerine göre, küresel benzersiz seri numarasının tek nokta sorununu ortadan kaldırırken, sipariş numarası ve alt tablo seri numarasındaki alt veritabanı alt tablo konumu ile küresel benzersizliği garanti eder.

Uygulama erişim CDS'si

  • İşletme düzeyinde bölme planına göre, CDS Konsolunda bir veritabanı ve tablo kümesi kuralı oluşturun. Küme başarıyla yapılandırıldıktan sonra, küme URL'si CDS Konsolu aracılığıyla elde edilebilir.

  • Uygulama erişimi CDS sürücüsü Jar paketi bağımlılığı, yerel JDBC veri kaynağı yapılandırmasını CDS veri kaynağı yapılandırmasıyla değiştirin ve CDS tarafından sağlanan bağlantı URL'sini kullanın. İlgili CDS işlevleri, tam tablo taraması ve bağlantı havuzu yapılandırması gibi işlevsel yapılandırmalar dahil olmak üzere bağlantı özellikleri aracılığıyla yapılandırılabilir.

Kod 1 (

Sorunsuz uygulama başlatma

Kesintisiz çözümün temel sorunu, uygulamanın yeni ve eski sürümleri uygulama yükseltme işlemi sırasında bir arada bulunduğunda veri tutarlılığının nasıl sağlanacağıdır.

1. Stok verilerini yükseltmeden önce CDS işletim platformu aracılığıyla CDS kümesine taşıyın Tüm uygulamalar yükseltildikten sonra, eski uygulama tarafından oluşturulan artımlı verileri yeniden CDS kümesine taşıyın. Ancak, uygulama yükseltme işlemi sırasında iki sorunun çözülmesi gerekir:

1-1.Eski uygulama sadece geçmiş veri tabanını okuyabilir ve yazabilir.CDS kümesinde yeni uygulama tarafından yazılan verilere nasıl erişilir?

1-2 Yeni uygulama, eski uygulama tarafından geçmiş veri tabanına yazılan verilere nasıl erişebilir?

Şekil 10 Uygulama yükseltme sırasında veri erişimi sipariş etme

2. CDS tarafından sağlanan verileri yeniden okuma ve çift yazma çözümleri bu sorunu iyi bir şekilde çözebilir:

Şekil 11 CDS çift yazma

2-1. CDS kümesi yapılandırması aracılığıyla, geçmiş veritabanı alt veritabanı ve alt tablo kümesinin yeniden okuma kitaplığı olarak kullanılır.Yeni uygulama, eski uygulama tarafından geçmiş veritabanına yazılan verileri okumadığında, yeniden okuma kuralına göre tarihsel veritabanına ikinci bir sorgu gerçekleştirir;

Şekil 12 CDS'nin yeniden okunması

2-2 Geçmiş veritabanını ikili yazma grubu olarak yapılandırın Yeni uygulama tarafından oluşturulan sipariş verileri, eski uygulamanın yeni uygulama tarafından oluşturulan sipariş verilerine erişebilmesini sağlamak için aynı anda geçmiş veritabanına ve CDS kümesine eklenecektir.

Akış tablosu verileri geçmiş veritabanını tutar.Yeni uygulama tarafından oluşturulan akış verileri, yeni eklenen alt veritabanı ve alt tablo kümesine düşer. Uygulama yükseltme sürecinde bir sorun olacaktır: yeni ve eski uygulamalar bir arada olduğunda, bu dönemde tüm verilerin bırakıldığından nasıl emin olunur Aynı veri tabanına mı?

Şekil 13 Yükseltme işlemi sırasında, yeni ve eski uygulamalar geçmiş veritabanını okur ve yazar

CDS, bir zaman gecikmeli anahtarlama şeması sağlar: varsayılan bir zaman eşiği ayarlayın ve eşik geçmiş veri tabanına düşmeden önceki akış verileri, Şekil 13'te gösterildiği gibi. Tüm uygulamalar başarıyla yükseltildiğinde, zaman eşiği değişikliği olayı CDS Konsolu üzerinden gönderilir. Geçerli zaman eşiğe ulaştıktan sonra, tüm uygulama verileri, Şekil 14'te gösterildiği gibi yeni alt veri tabanına ve alt tablo kümesine yönlendirilir.

Şekil 14 Basmalı anahtar olayı, veritabanına erişmek için uygulama anahtarı

Yazar: Wang Yilin, mali Jingdong'da çalışan, veritabanı ara yazılım araştırma ve geliştirmesinden sorumlu. Görev süresi boyunca, CDS Ar-Ge ekibinin, CDS alt veritabanı alt tablo ara yazılımı, işletim platformu, çevrimdışı veri merkezi ve diğer ürünler de dahil olmak üzere bir dizi veritabanıyla ilgili ürünü piyasaya sürmesine liderlik etti.

Küba'da "Pekin restoranı" olduğu ortaya çıkan tamamen yabancılara ait ilk işletmeyi keşfedin
önceki
"Kapalı silindir" yeni yetenek, yeni Mai Rui Bao XL Redline size yeni bir his veriyor
Sonraki
Beijing Xiangshan Park'ın güney eteğindeki Shuangqing Villa, Qianlong tarafından adı verilen ve kendisi tarafından yazılan önümüzdeki yıl Eylül ayında yeniden açılacak
Highlander benim yaşım değil, ama biri bana üç tane satın alabilir.Bu nasıl makul olabilir!
Honor Magic 2 konfigürasyonu ve kimlik fotoğrafları duyuruldu: Kirin 980+ altı kamera
Pekin'deki "Ateş Kralı" Sun Zhuo da dahil olmak üzere cepheden 30 kişi, gençlik rol modeli olarak derecelendirildi
Manuel vitesin 48V hafif hibrit ile daha uyumlu olduğunu duydum? Auchan Koshang Blue Motion Elite Edition'ın ilk gerçek çekimini yapın
Güney Kore ve Kırgızistan: Ulusal Futbol "İyilikseverlik" yerine yedek kulübesi geldi
QiLucai, Yeni Yıl Ödülünün ilk atışını yaptı! Dün gece Qingdao'da 1 bahis ikramiyesi kazandı!
İlk sınırlı sürüm modeli olan 159.800 ila 241.800 yuan arasında değişen yeni Jeep Rehberi piyasaya sürüldü
Derinlik Grafik Hesaplama Sisteminin İlerlemesi ve Beklentisi
GIGABYTE Z390 Aorus Pro WIFI Anakart Kutudan Çıkarma Resim Turu: Eagle Claw Kavramsal Tasarım
Medya insanları hararetle tartışıyor: Wu Lei'den özür dileyin! Hao Junmin 2006'da Pirlo'yu beğendi
Lamborghini Huracan teaser görüntüsü gösterildi veya büyük boyutlu merkezi kontrol ekranı / 2019'un sonunda piyasaya sürüldü
To Top