Node.js ile Javascript Mikro Hizmetleri Oluşturmaya İlişkin Her Şey Dahil Öngörüler!
Yayınlanan: 2022-03-21JavaScript uygulamanızın boyutu hızla büyüyor mu? Cevabınız evet ise, kodu korumanız, hataları düzeltmeniz ve yeni güncellemeleri uygulamanız sizin için zorlaşmış olmalı. Çözüm nedir? Daha fazla geliştiriciyi işe almak yardımcı olabilir, ancak aynı zamanda proje karmaşıklığını artırabilir ve masrafları artırabilir.
En iyi çözüm, büyük monolitik tasarımları, operasyonları yürütmek ve veri alışverişi yapmak için birbiriyle iletişim kuran daha küçük boyutlu bağımsız programlara bölen mikro hizmet mimarisi-dağıtılmış sistemlere gitmektir. Bu yaklaşımı kullanarak bir uygulama, gevşek bağlı hizmetlerin bir birleşimi olarak yapılandırılabilir.
JavaScript mikro hizmetlerini ayrıntılı olarak inceleyelim ve mikro hizmetler oluşturmak için neden Node.js mimarisinin kullanılmasının önerildiğini anlayalım. Ayrıca, Node.js ile JavaScript mikro hizmetleri oluşturmaya yönelik adım adım rehberlik alın.
Mikro hizmetler ne anlama geliyor?
Yazılım uygulaması geliştirme açısından, mikro hizmetler bir tür SOA'ya (hizmet odaklı mimari) atıfta bulunur. Burada, birbirine bağlı hizmetlerden oluşan bir derleme, uygulama yapısını oluşturur. Mikro hizmetler nedeniyle, uygulamanın mimarisi LDAP, OpenLDAP vb. gibi hafif protokoller kullanılarak oluşturulur. Uygulama daha küçük hizmetlere ayrılabilir ve gelişmiş modülerlik için yer vardır. Bu günlerde, GraphQL/REST arayüzüne sahip bulut tabanlı uygulamaların çoğu, mikro hizmetler kullanılarak geliştirilmektedir.
Monolitik mimariye göre mikro hizmetlerin avantajları
Mikro hizmetlerin öncülü olan Monolitik Mimaride, tüm yazılım bileşenleri ve hizmetler büyük bir kap içine konur ve ardından sıkıca paketlenir. Monolitik bir uygulama tek bir birleşik birim iken, mikro hizmetler, uygulama yapısını her uygulama sürecini ayrı bir hizmet olarak yürüten daha küçük bağımsız birimlere böler. Bu nedenle her hizmetin kendi mantığı ve veritabanı vardır ve belirli işlevleri yerine getirir. Dolayısıyla, monolitik uygulamalarla karşılaştırıldığında mikro hizmet uygulamaları daha esnek, ölçeklenebilir, güvenilir ve dil çelişkilidir; daha hafif yinelemeler içerir; zamanı sonuna kadar optimize edin; verileri sistematik olarak düzenleyin. Ayrıca, mikro hizmetlerin arabirimleri (API uç noktaları) bir temel URI içerir. Bu URI, bir veri nesnesini ve nesneyi işlemek için kullanılan POST, GET, PUT, PATCH ve DELETE gibi standart HTTP metodolojilerini tanımlar.
JavaScript mikro hizmetleri üzerine kurulu uygulamalar söz konusu olduğunda, kesin arayüzlere ve açıkça tanımlanmış işlemlere sahip tek işlevli modüller oluşturmaya odaklanabilirsiniz. Bu, uygulama geliştirme sürecini daha çevik hale getirerek sürekli test etme zorluklarını en aza indirir.
Ancak, test, dağıtım, önbelleğe alma vb. etkinlikler sırasında her bir mikro hizmetin ayrı ayrı ele alınması gerektiğinden bu yaklaşım her türlü projeye uygun değildir. İdeal olarak, fazla iş mantığı kullanmayan hafif uygulamalar/yazılım çözümleri geliştirirken monolitik mimarinin kullanılması tavsiye edilir. Mikro hizmetler, karmaşık uygulamalar oluşturmak ve bir günde bin kullanıcıya ve ertesi gün on bin kullanıcıya sahip olabilecek SaaS çözümlerinde olduğu gibi ölçeklendirme gereksinimleriyle gelişen uygulamalar için önerilir.
Node.js mikro hizmetleri
Node.js, JavaScript mikro hizmetleri oluşturmak için en çok tercih edilen seçimdir. Node.js, bir JavaScript motorunda yazılmış, açık kaynaklı, platformlar arası bir RTE'dir (çalışma zamanı ortamı) ve sunucu tarafı ve ağ uygulamaları geliştirmek için kullanılır. Node.js, Node.js çalışma zamanı içinde Linux, Microsoft Windows ve OS X gibi işletim sistemlerinde yürütülür.
Mikro hizmetler oluşturmak için neden Node.js tercih edilir?
Node.js çerçevesi, JavaScript mikro hizmetlerinin geliştirilmesini kolaylaştıran birkaç JavaScript modülü içeren zengin bir veritabanı sunar. G/Ç bağlantılı uygulamalar, JSON API tabanlı uygulamalar, SPA'lar, veri yoğun gerçek zamanlı uygulamalar, veri akışı uygulamaları vb. oluşturmak için tercih edilen bir teknolojidir. Mikro hizmet geliştirme için Node.js kullanmanın faydaları aşağıdaki gibidir. :
Asenkron Doğa: Node.js ortamının senkronize olmayan ve engellemeyen kitaplıkları, önceki API'nin veri döndürmesini beklemeden bir sonraki API'ye geçer.
Daha Fazla Maliyet kontrolü: Hem Node.js hem de mikro hizmetler, daha düşük geliştirme ve bakım maliyetleriyle sonuçlanan olağanüstü ölçeklendirme yeteneklerine sahiptir. Ayrıca Node.js, diğerlerine kıyasla aynı sayıda isteğe hizmet etmek için bellek, CPU vb. gibi altyapı gereksinimlerini en aza indirerek maliyetleri düşürür.
Mükemmel performans: Node.js, dinamik topluluk desteğine ve çok sayıda kullanılabilir kaynağa sahip popüler bir web teknolojisidir. Ayrıca, Node.js standart bir akış API'sı sunar ve böylece çevrimiçi oyun, sohbet uygulamaları vb. gibi gerçek zamanlı uygulamaların güvenli bir şekilde geliştirilmesini ve sağlam performansını sağlar. Ayrıca, sorunlar veya hatalar nedeniyle bir mikro hizmet kapalıysa, uygulamanın tamamı çalışmaz. Etkilenmeyin JavaScript de yorumlanan bir dil olduğundan derleme aşamasında zaman kazandırır. Bu nedenle Node.js ile JavaScript mikro hizmetleri kullanan uygulamalar iyi performans gösterir.
Hız ve Duyarlılık: Node.js tek iş parçacıklıdır ve olay döngüsü sayesinde sunucu yanıt vermek için engellenmeyen bir mekanizma kullanır. Ayrıca, "Events of Node.js" bildirimi sayesinde uygulama sunucusu önceki API çağrısının yanıtını yakalayabilir. Veriler parçalar halinde yayınlandığından arabelleğe alma minimum düzeydedir. Hızlanmak üzere olan V8 JavaScript motoru, Node.js geliştiricilerinin kodları çok hızlı yürütmesini sağlar.
Node.js Kullanım Senaryoları Senaryosu
Node.js, aşağıdaki kullanım senaryoları için mükemmel bir seçimdir:
- Çeşitli istemcileri, yerel mobil uygulamaları ve mobil/masaüstü tarayıcılarını desteklemesi gereken bir kurumsal uygulama oluşturuyorsunuz; üçüncü tarafların kullanabileceği bir API sağlayın, bir uygulama için sürekli dağıtım hattı oluşturun; bir mesaj komisyoncusu veya web hizmetleri aracılığıyla diğer uygulamalarla entegre edin; ve NFR'nin kullanılabilirlik ve ölçeklenebilirlik gereksinimlerini karşılamak için çeşitli makinelerde uygulamanın birkaç örneğini çalıştırın.
- Esneklik, ölçeklenebilirlik ve yönetilebilirlik gibi özellikleri/yetenekleri geliştirmek için monolitik uygulamaları taşımanız veya eski bir uygulamayı yeniden platform oluşturmanız gerekir.
- Kimlik doğrulama ve şifreleme gibi bağımsız uçtan uca hizmetleri ayırmanız gerekir.
- Hizmet sağlayıcının müşteriye fiyatlandırma veya tahmin hizmetleri gibi gerekli altyapı yönetimini ve bilgi işlem kaynaklarını sunduğu bir senaryo.
- Çeşitli veri kaynaklarından veya kanallardan veri toplaması muhtemel, ön uç duyarlı bir web uygulaması için arka uç hizmetleri sunmanız gerekir.
Node.js ile JavaScript Mikro Hizmetleri oluşturmaya yönelik adımlar
İş Gereksinimini Doğrulayın
İşletmenizin hangi hizmetlere ihtiyacı olduğunu belirleyin. Örneğin, iki posta kodunun ve aralarındaki mesafenin tanımlanması gereken bir hizmete ihtiyacınız var. Posta kodunu belirlemek ve mesafeyi hesaplamak için doğrulama tekniklerinin kullanılması gerekir. Bunun için, bu . icroservice'in harici API çağrılarını yapılandırması gerekiyor. Ve dahili bir önbellek uygularsanız, API çağrılarını hızla çoğaltarak süreç uygun maliyetli hale gelebilir.

Başlatma Prosedürü
Öncelikle iş istasyonunuza/bilgisayarınıza Node.js yükleyin ve bunun için 8.1.1 sürümü önerilir. Genellikle NPM olarak adlandırılan Node.js Paket Yöneticisi, kurulum paketinin bir parçası olarak gelir. NPM, proje başlatma, bağımlılık yükleme ve hizmet yürütme gibi önemli işlevleri yerine getirir.
Düşman proje başlatma, Node.js platformunu açın, kök klasöre gidin ve ardından $ npm init komutunu çalıştırın. Komut yürütüldükten sonra package.json dosyasının oluşturulmasına yol açar ve bu dosyanın oluşturulması proje yürütmesinin temelini oluşturur.
Mikro hizmet, şu iki birincil pakete dayalı olarak oluşturulur:
- "Talep" - mikro hizmetler, web tabanlı veya üçüncü taraf API'lere bağlanmak için bu paketi kullanır.
- "İfade etmek." – Bu paket, Node.js uygulamalarını desteklemek için bir yapı sağlar ve bu mikro hizmetin Node.js temelini destekler.
Bu paketler, bu basit adımlarla package.json dosyasına eklenebilir – $ npm install express request komutunu girerek, komutun sonuna save ekleyerek ve ardından bu komutu çalıştırarak.
Sonuç:
mpm init komutu, bir mikro hizmet oluşturmak için bir dosya/klasör yapısı oluşturur ve İstek ve Ekspres paketleri bu yapı içinde bağımlılıklar şeklinde kaydedilir. Daha sonra kodlama başlar.
Sunucuyu Kur
Bu adım kodlamanın ilk kısmıdır ve burada istekleri tanıyan ve kabul eden bir sunucu oluşturmanız gerekir.
server.js adında bir giriş dosyası oluşturun; sunucu başladığında yürütülecektir. Uygulamanın örneğini route nesnesinde geçirerek yolları birincil dosyada kullanılabilir hale getirin. Ardından yolları tanımlayın ve sunucuyu çalıştırdığınızda uygulama, 3000 numaralı bağlantı noktasını veya PORT ortamının değişkeninde belirtilen başka bir bağlantı noktasını dinler.
Rotaları belirtin
Ardından, yanıt iletimi için rotaları belirlemek olan mikro hizmet geliştirmedeki bir sonraki önemli adım gelir. Daha önce oluşturulan sunucu, rotalar atayacak ve bu rotalar, tüm isteklerin işlenmesini sağlayacaktır.
api_routes klasörünüzde route.js adında bir dosya oluşturun ve gerekli kodu buna ekleyin. Şimdi, rota dosyası iki uç noktayı belirtir - yaklaşık uç nokta uygulama ayrıntılarını belirtirken, mesafe uç noktası harici API kullanarak her iki posta kodu arasındaki mesafeyi (mil olarak) hesaplar.
Denetleyici dosyası, bu uç noktaların uygulanmasını içerir ve bizi bir sonraki adıma götürecektir.
Denetleyiciyi Oluştur
Şimdi, mikro hizmete bazı yararlı işlevler kazandırmak için denetleyici mantığının eklenmesi gerekiyor. Denetleyici nesnesi, nesnelerin işlenmesi için yeni değiştirilen verileri iletmek için eylemlerin yanı sıra kullanıcı niyetlerini yorumlamak için kullanılır. Daha önce oluşturulmuş olan route modülü tarafından alınan isteklerin işlenmesinde de faydalıdır. Denetleyici dosyası iki işlevi yürütür – getDistance() ve about().
İki bağımsız değişken – istek ve yanıt – about() işlevi tarafından kabul edilir. Adları ve sürüm değerleri, package.json'ın özelliklerinde depolanır. Benzer şekilde, getDistance () işlevi ayrıca istek ve yanıt argüman çiftini içerir; servisler klasöründe tanımlanmış olan API bulma fonksiyonunu çağırır.
Harici API Çağrısını Oluşturun
API çağrısını oluşturmak için üçüncü taraf bir API olan ZipCodeAPI.com'u kullanın. – bir hesaba kaydolarak veya test API anahtarını kullanarak ücretsiz bir API anahtarı elde edebilirsiniz.
Şimdi, aşağıdaki adımlarla mikro hizmet kodunu oluşturun:
- Harici HTTP isteğini işlemek için istek paketini yükleyin
- Ortam değişkeninde bulunan API anahtarını ve zipCodeURL'yi yükleyin
find()function seçeneği altında bir istek nesnesi oluşturun ve ardından yanıt alındığında çağrılacak bir geri arama işlevi belirtin. Yukarıda bahsedilen fonksiyon hatasızsa ve yanıt bir HTTP durum kodu 200 içeriyorsa, bu adım başarıyla yürütülür. Bundan sonra, yanıtın gövdesi ayrıştırılır ve ardından döndürülür. Yanıt doğrudan iletmek yerine ayrıştırılırsa, yanıt optimum verimlilikle ele alınabilir. Herhangi bir arıza durumunda konsola giriş yapılır ve -1 yanıtı döndürülür.
Programın Yürütülmesi
Şimdi, projenizin terminalinde npm start komutunu çalıştırarak programı çalıştırın. Tüm işlevler sorunsuz çalışıyorsa, /web uç noktası hakkında seçeneğine basın ve bu çıktıyı bir web tarayıcısında görüntüleyin – {“ad”: “mikro hizmetler”, “sürüm”: “1.0.0”}
Ayrıca, /distance endpoint seçeneğine basın ve sorgu dizesi aracılığıyla bazı değerleri ona iletin; sonra istenen çıktı üretilecektir.
Burada, nesnenin mesafesi dışa aktarılır. Denetleyici, harici API çağrılarının somut işlevlerini ve örneklerini istendiği gibi temsil edebilir. Ve son olarak, mikro hizmet yürütme sürecini tamamlamak için kod, komut içindeki herhangi bir yazım hatasını algılamak için gözden geçirilir.
Bu, iki posta kodu arasındaki mesafeyi bulmak için bir mikro hizmet oluşturmaya bir örnektir.
Bir Veritabanını Mimarinize Entegre Edin
Artık Node.js uygulamanız oluşturuldu ve verilerin bir veritabanında saklanması gerekiyor. Bunun için bir Data API veya bir veritabanı kullanabilirsiniz. Ve Node.js uygulamasından veritabanlarınızla sorunsuz etkileşim için bir JavaScript sürücüsü kullanın.
Sonuç Sözleri
Umarım bu gönderi, Node.js çerçevesini kullanarak JavaScript mikro hizmetleri oluşturmaya ilişkin kullanışlı bilgiler toplamanıza yardımcı olmuştur ve mikro hizmetler oluşturma sürecini açıkça anlamışsınızdır.
Etkili bir JavaScript mikro hizmeti oluşturmak için teknik yardıma mı ihtiyacınız var? Oldukça deneyimli bir Node.js uygulama geliştirme şirketi olan Biz4Solutions ile bağlantı kurun. Hizmetlerimiz, küresel müşterilerimiz tarafından en iyilerden biri olarak kabul edilmiştir.
Diğer temel teknolojilerimiz hakkında daha fazla bilgi için aşağıdaki bağlantılara bakın:
React Native Uygulama geliştirme
Swift Uygulama Geliştirme
PHP Uygulama Geliştirme
