[Programlama aracı] Tencent'in yoğun açık kaynaklı DCache, dağıtılmış NoSQL depolama sistemi

E-ticaret platformlarındaki ürünleri öldürdüğünüzde veya sosyal ağlarda gündemdeki konuları gözden geçirdiğinizde, mevcut ağ veri trafiğinin dehşetini net bir şekilde hissedebilirsiniz. Yüzbinlerce ürün bir saniyeden daha kısa sürede tükenir; hangi büyük yıldız Hile mesajı göründüğünde, okuma ve yeniden gönderme sayısı yüz milyonlara ulaşabilir. Son kullanıcılar olarak, hizmet sisteminin bu kadar şiddetli bir trafik ortamında nasıl hayatta kaldığını düşünebiliriz.

Aslında, hizmet sistemi mimarisinde bu tür sorunların üstesinden gelmek için birçok akıllı tasarım vardır.Bunların arasında, sistem genellikle büyük erişim taleplerinin ve verilerin etkisini azaltmak ve yüksek performanslı erişim gereksinimlerini elde etmek için bir önbellek sistemi kurar.

Aynı zamanda, mikro hizmetler ve bulut gibi teknolojilerin gelişmesiyle birlikte, dağıtılmış mimariye olan talep gittikçe daha yaygın hale geldi. Ayrıca, günümüzün Web üzerindeki veri türleri artık tek değil ve veri miktarı da patlıyor. Yapılandırılmış depolama çözümleri artık ayak uyduramaz ve veritabanı üzerindeki SQL işlemleri artık gereksinimleri karşılamadığından NoSQL ortaya çıkar.

Bu birkaç teknik çözümü entegre ederek, dağıtılmış bir NoSQL önbellekleme sistemi tasarlayabiliriz Şu anda, bu tür bir sistem, tüm hizmet sisteminin kullanılabilirliği, ölçeklenebilirliği ve performansında etkili olan Memcached ve Redis gibi nispeten güçlü bazı açık kaynaklı çözümlere sahiptir. Hayati bir rol oynayın.

Tencent'in kısa süre önce dağıtılmış bir NoSQL depolama sistemi DCache'yi açtığını ve tipik uygulama senaryosunun dağıtılmış önbellek olduğunu duydum. Resmi tanıtıma göre DCache, TARS mikro hizmet yönetimi çözümünü temel alır. K-v, k-satır, liste, küme ve zset gibi birden çok veri yapısını destekler. Veriler, bellek depolamaya dayanır ve veri kalıcılığını sağlamak için sonraki DB'yi destekler. DCache hızlı yatay genişleme yeteneğine sahiptir ve verimli çalışma ve bakım sağlamak için bir Web işlem ve bakım platformu ile donatılmıştır.

DCache Ar-Ge ekibinin bir üyesi olan Shan Baoyin ile ilk kez röportaj yaptık ve projenin Ar-Ge geçmişini ve ilgili teknik ayrıntıları daha iyi anlayabilmeyi umuyoruz.

DCache: https://www.oschina.net/p/dcache-nosql

Mevcut açık kaynak dağıtılmış önbellekleme sistemleri arasında, Memcached ve Redis çok yaygın seçimlerdir Tencent neden bu sefer kendi sistemini kurdu?

Shan Baoyin, hem Memcached hem de Redis'in son derece güçlü yeteneklerine sahip olmasına rağmen, işletim ve bakımda zorluklar, kümeleme çözümlerinin eksikliği ve mikro hizmet trendinin getirdiği zorluklarla başa çıkamama gibi sorunlar olduğunu açıkladı.

Örneğin, mevcut mikro hizmetler büyük bir eğilimdir Herkes, bilgi işlem ve depolamayı birbirinden ayırabilen ve hafif iletişimi gerçekleştirebilen mikro hizmetlerden bahsediyor. Redis bir sistem bileşeni olarak mikro hizmetlerin yaşam süresini yönetmesine gerek duymaz. "Hizmet mimarisini tasarlarken mantık katmanını ve veri katmanını ayırmayı umuyoruz, ancak Redis önbellekleme için kullanılıyorsa, önbellek ve DB arasındaki veriler tutarlıdır. Cinsel sorunlar ve önbellek kayıplarının nasıl çözüleceği, kullanıcıların iş mantığında ilgili işlemleri yapmasını gerektirir, bu da belirli bir karmaşıklık ve zorluk derecesini artırır ve ayrıca mantık katmanı ile veri katmanı arasındaki bağlantıyı artırır. "

Öte yandan Shan Baoyin, başlangıçta büyük veri ve yüksek performanslı erişim talebiyle karşı karşıya kalan Tencent'teki her ekibin aslında kendi önbelleğe alma sistemlerini geliştirdiğini ancak bu sistemler arasındaki protokollerin birleşik olmadığını, hizmet modellerinin çeşitlendiğini ve evrensel olmadığını söyledi. Hata toleransı ve genişletme yeteneklerinin performansı da eşit değildir, bu nedenle ekip, genel amaçlı bir Önbellek sistemi olan DCache'yi geliştirmeye başladı ve iş, geliştirme, işletim, bakım ve bir bütün olarak izlemenin karşılaştığı çeşitli zorlukları çözmeyi umdu.

Bu nedenle, DCache'nin QQ tarayıcısı, uygulama hazinesi, Tencent haritası, Tencent bilgisayar uşağı, cep telefonu uşağı ve Tencent oyunları dahil olmak üzere Tencent'in birçok dahili işletmesine uygulandığı da görülebilir.

SQL, dağıtılmış ve NoSQL arasındaki denge

SQL, veritabanının yapılandırılmış sorgu dilini ifade eder. Veritabanının işletim komut setidir.Geleneksel ilişkisel veritabanları, verileri işlemek ve işlemek için standart SQL ifadelerini kullanır. Dağıtık, yazılım sistemlerinin mimari bir modelidir.Dağıtık bir sistemde, birden çok donanım veya yazılım bileşeni farklı bilgisayarlara dağıtılır ve mesaj geçişi yoluyla birbirleriyle iletişim kurar.Dış görünüm bir bütündür ve birleşik hizmetler sağlar.

SQL veritabanı ile dağıtılmış veritabanı arasında doğal bir antagonizma olduğuna dair yaygın bir görüş var. Shanbaoyin şunu anlıyor: "Veriler, dağıtılmış bir sistemde farklı düğümlere dağıldığından, SQL birleştirme tabloları ve işlemler gibi işlemler genel bir Kilit korumasının üstesinden gelmek daha karmaşıktır ve performansı etkiler. "

SQL ve NoSQL arasında da bir değiş tokuş vardır. NoSQL, esas olarak ultra büyük verilerin yüksek performanslı işlenmesi için kullanılan bir veritabanı türünü ifade eder. Ana özelliklerinden biri, veri yapısının basit, temelde anahtar / değer çiftine dayalı olması ve verilerin alakasız ve kolay olmasıdır. Yatay genişleme yapın.

Kelimenin tam anlamıyla, NoSQL, SQL'in tersi gibi görünüyor. NoSQL yapmak SQL'den vazgeçmek anlamına geliyor gibi görünüyor. Aslında, NoSQL Yalnızca SQL Değil anlamına gelir. Bu sadece SQL değildir, dolayısıyla SQL yeteneklerini de içerebilir.

"NoSQL'in mutlaka SQL'den vazgeçmesi gerekmez. Aslında, SQL işlemlerini uygulamak için proxy katmanına SQL analizi ve hesaplama mantığı eklenebilir, ancak bu performansı etkileyeceğinden uygulama senaryosuna ve iş gereksinimlerine bağlıdır."

Shanbaoyin bizim için DCache "dağıtılmış NoSQL" in anlamını kısaca analiz etti. SQL işleme açısından, dağıtılmışın dezavantajları var gibi görünse de dağıtılmış, daha ucuz bilgisayarları bağlayabileceğiniz, bilgi işlem gücünden tam olarak yararlanabileceğiniz ve yüksek yoğunluklu eşzamanlı erişim isteklerine düşük maliyetli bir şekilde yanıt verebileceğiniz anlamına gelir.Ayrıca, birçok dağıtılmış mimari vardır. Sistemdeki tek nokta sorunlarından kaynaklanan genel arızalardan kaçınmak ve yüksek kullanılabilirlik elde etmek gibi avantajlar.

Öte yandan Shan Baoyin, "DCache ana hedef yüksek performans olduğu için çözülmesi gereken asıl sorun SQL işlemi değildir, bu nedenle DCache SQL işlevini uygulamıyor" dedi.

DCache dağıtılmış stratejisi ve yetenekleri

DCache'nin harici hizmetlerinin ayrıntı düzeyi gruptur. Grup, veri parçalamasının bir kısmından sorumludur.Her grubun hangi veriye hizmet ettiğine gelince, karma haritalamadan sonra veri anahtarının kapsamına göre belirlenir.

DCache, verilerin anahtarını, hash algoritması aracılığıyla 04294967295 (işaretsiz tamsayı) aralığına eşler ve ardından 0 4294967295 aralığını farklı gruplara eşit olarak böler. Örneğin, iki grup vardır: Anahtarın karma değeri, grup1'e 0 - 2147483647 aralığında ve grup2'ye 2147483648 - 4294967295 aralığında dağıtılır.

Bir grupta, ana yedekleme mimarisi benimsenir ve yalnızca ana düğüm okuma ve yazma isteklerini alır, böylece veri tutarlılığı garanti edilebilir.Master kullanılamadığında, hizmetlerin sürekli kullanılabilirliğini sağlamak için ana ve yedeklemenin otomatik geçişini tetikler.

DCache mimarisi

DCache'nin etcd ve TARS gibi ara yazılımlara güçlü bir şekilde güveniyor gibi görünmesine şaşırdık, bu yüzden kendi Temel özellikler ve yetenekler Nereye yansıtılır?

Shanbaoyin, DCache'nin etcd'ye güçlü bir şekilde güvenmediğini açıkladı. "Etcd yalnızca yönlendirme hizmeti RouterServer'ın seçimini içerir. RouterServer konuşlandırılırsa, tek bir nokta da kullanılabilir ve RouterServer'ın kesinti süresi, verilerin okuma ve yazma erişimini etkilemeyecektir çünkü hepsi Hem Proxy hem de Önbellek hizmetlerinin yerel yönlendirme önbellekleri var. TARS'ın benimsenmesiyle ilgili olarak, TARS mükemmel bir hizmet geliştirme çerçevesi olduğundan, temel ağ iletişim ayrıntılarını korur ve birçok ad hizmeti vb. İle birlikte gelir. Servis için gereken işlevler için, DCache için, işlevlere daha iyi hizmet vermek için mevcut TARS çerçevesi kullanılabilir ve tekrar tekrar tekerlekler oluşturmamıza gerek yoktur. "

DCache'nin yeteneklerine gelince, Shan Baoyin: "DCache'nin kendi depolama motoru yüksek performansa sahiptir ve sonraki DB'yi destekler. Kullanıcılar için, DB ile önbellek arasındaki veri tutarlılığını önemsemeye gerek yoktur ve Önbellek atlamalarının neden olduğu bir dizi sorun. "

Spesifik olarak, DCache kalıcılığı Redis'ten farklıdır. İkincisi, Redis yeniden başlatıldıktan sonra veri kurtarmayı sağlamak için yerel diskteki bellekteki verilerin yedeğini alır.

"Redis kalıcılığı esas olarak veri yedeklemesi içindir. DCache arka ucunun bir DB'si olduktan sonra, iş mantığı arka uç verilerinden tamamen ayrılabilir ve DCache, önbellek ile DB arasındaki veri tutarlılığını kendisi halleder.

DCache, Önbellekteki verileri sürekli olarak arka uç DB'ye indirecektir. Önbellekteki depolama alanı yeterli değilse, DB'ye zaten inmiş olan soğuk veriler ortadan kaldırılacaktır. Veri sorgulama sürecinde, sorgu önbelleği çarpmazsa, önbellekteki verinin hotspot ve isabet oranını sağlamak için DB'den okunarak önbellekte yeniden depolanır.Aynı zamanda DB ile önbellek arasındaki penetrasyon sorunu da çözülür.

Ek olarak, verileri arka uç DB'ye kaydetme yeteneği, çevrimdışı veri analizi gerektiren bazı iş senaryoları için daha uygundur. Kısacası, verilerle hiç ilgilenmenize gerek yoktur, yalnızca verileri Önbelleğe yazmanız gerekir ve arka uç inişi DCache tarafından yönetilir. "

DCache özellikleri

Ek olarak, DCache'nin dağıtılmış kümeleme, uzaktan yansıtma dağıtımı ve felaket toleransı ve hata toleransı yetenekleri, gerçek çevrimiçi uygulamalarda çok yüksek değer sağlayacaktır.

Yararlı yer

Dağıtılmış bir depolama sistemi olarak, DCache'nin uygulama senaryoları önbellekle sınırlı değildir. Shanbaoyin, DCache'nin yüksek performanslı NoSQL depolama gereksinimleri olan senaryolar için kullanılabileceğini ve DCache'nin kapasiteyi ortadan kaldırma ve sona erdikten sonra verileri otomatik olarak temizleme işlevine sahip olduğunu tanıttı. Ayrıca, etkin verileri (popüler makaleler gibi) ve geçici verileri (zamana duyarlı sohbet kayıtları gibi) depolaması gereken sahneler için de iyi destek sağlayabilir.

Shanbaoyin ayrıca DCache'nin performans verilerini de sağladı:

Şu anda, QQ tarayıcısı, uygulama hazinesi, Tencent haritası, Tencent bilgisayar uşağı, cep telefonu uşağı ve Tencent oyunları da dahil olmak üzere Tencent bünyesindeki yaklaşık yüz işletme DCache'ye erişebiliyor. Bu işletmelerin hacmi hayal edilebiliyor, diye ekledi Shanbao Yin. "Bu basit veri kümesine ek olarak, DCache ortalama günlük çağrı hacmi bir trilyon katın üzerinde olan yaklaşık yüz işletmenin çalışmasını verimli ve güvenilir bir şekilde destekliyor. Bu aynı zamanda DCache'nin üretim ortamında performansını ve kararlılığını da gösteriyor. . "

Sistemin kendisinin yüksek performans, yüksek ölçeklenebilirlik, yüksek kullanılabilirlik ve veri güvenliği tasarımına ek olarak, Web görselleştirmenin verimli çalışma ve bakım platformu da DCache'nin vazgeçilmez ve önemli bir yeteneği haline geldi. Bellek tabanlı bir NoSQL depolama sistemi, işletim ve bakımda çok büyük ek maliyetlere neden olacaktır.İlgili teknolojilerin derinlemesine anlaşılmasını gerektirir ve kritik bir noktada doğru kararlar vermeyi gerektirir.

DCache, TARS temel alınarak geliştirildiğinden, işletim ve bakım platformu DCache ve TARS hizmet yönetimini tek bir modülde entegre eder. Shanbaoyin, işletim ve bakım platformunun verimliliği büyük ölçüde artıracağını ve işletim ve bakım için eşiği azaltacağını tanıttı. Hizmet dağıtımı ve çevrimiçi ile ilgili olarak , Geçiş, genişletme, izleme ve yapılandırma işlemleri kolaylıkla gerçekleştirilebilir.

Lastikte iki nokta vardır: bir kırmızı ve bir sarı çok önemlidir
önceki
Singularity Güzellik Araştırma Merkezi, küresel bir bakış açısıyla bir "araba beyni" yaratmak için resmen kuruldu
Sonraki
Tersine çevirmek? Wuhan Üniversitesi, kiraz çiçeği izleme çatışmasına yanıt verdi: bir turist randevu almadı, kadın güvenlik görevlilerini sözlü olarak kışkırttı
Araba bilgisi: otomatik şanzımanın doğru kullanım ve çalıştırma becerileri
[Programlama aracı] ComponentOne 2019V1: Visual Studio 2019 için tam destek
Bir zamanlar Çin'den "kaçan" Honda arabası tekrar geri geliyor. Yeni Insight'ı alacak mısınız?
Qingdao'daki 10 toplum demans yaşlı bakımı gösteri merkezinin işletilmesi
FAW Besturn SENIA R97,99-10,69 milyon yuan'a satabilir, 6 model 26 Mayıs'ta piyasaya sürülecek
Zotye'nin "üst düzey markası" nın ilk modeli Junma S70 yarın piyasaya sürülecek
İki adam bir WeChat grup randevusu yaptı ve onlardan biri bir bıçak getirdi! sonuç
Guangxi Automobile Group ve Mustang Automobile ile stratejik işbirliğinin imza töreni Chengdu'da yapıldı
Ürpertici! Adam en sevdiği kızdan yemek yemesini istedi, ancak gözetim altında yakalandı.
Yüksek hızda koşarken bu 6 düşük seviyeli hatayı yapmayın!
2017'de hangi araba iyi satacak? Popüler markalar hala ilk 10 yarısını oluşturuyor
To Top