Mikroservisleri tercih etmek uchun 4 esas sebeb var : Scalability Bu ozellik monolit application da da mumkundur. Horizontal ve Vertical Scalability: - Horizontal, Serverimiz tutaq ki , 4gb ram da ishleyir. Hal hazir ki veziyyete gore uygun olsada musteri sayi artandan sonra serverin ramini artira bilerik. Lakin bunun bir limiti vardir. (diger paratmetrlerde daxilidr, cpu, harddrive). Yeni horizontal - sistemi guclendirmek basha dushulur. Burada limit oldugundan , sonradan yeni sistem alinmalidir, lakin server yalniz bir komputer olmalidir. - Vertical, burada yaradilan servisin kopyasini yaratmaq basha dushulur. Esasen mikroservis arxitekturasinda istifade olunur. Meselen Account Service 1000 sorgu emal ede bilirse, bu servisin kopyasi da 1000 sorgu emal edecek. Bu mikroservis oluduguna gore ishletdiyi ram daha az olacaqdir (ve ya diger parametrler) Burada servislerin kopyasini avtomatik yaradilmasini temin eden sistemler var ki, bunlara misal olaraq Kubernetes, Rancher ve ya cust...
Threadlarla ishlemek uchun evvelce Thread classini extend etmeliyik. Daha sonra run() metodu Override olunmalidir. Oz classimizin obyektini yaratdiqdan sonra, MyThread m = new MyThread(); m.start(); deyib threadi ishe salmaq olur. strart metodu arxada dolayi yolla run metodunu ishe salir. extends Thread ve implements Runnable Extends zamani artiq extends qabiliyyetini itiririk. class Runnable da implements etdikden sonra start() metodu bu interface ichinde olmadigina gore error olacaq. Buna gore asagidaki shekilde kod yazilmalidir. Thread mt = new Thread(new MyThread()); constructora oz obyektimizi gonderirik. Race Condition Eger butun threadlar eyni menbeye muraciet edirse bu zaman RaceCondition yaranir. Bu problemin qarshisini almaq uchun synchronized istifade etmek lazimdir. Volatile Thread lar yaranan zaman proyektin cari hali kopyalanir. Yeni Threadlar her biri ayri yaddash sahesine muraciet edir. synchronized ne qeder b...
List terkibinde add , size , remove, set ve diger metodlari olan interfacedir. ArrayList, LinkedList, Vector - List interface den implements edib. ArrayList ozu arxada Array istifade edir. 1.add zamani eger capasity dolubsa, yeni array yaradir ve evvelki arrayi buna set edir. Performans cehetden problem olsa da, initialCapasity vermekle bu problemi onlemek olur. 2. remove zamani proses eyni gedir, yeni array yaradilir. Lakin burada problemin qarshisini almaq mumkun deyil. Her remove zamani yeni array yaradilir. 3. get prosesi burada optimal gedir. LinkedList arxada Array istifade etmir. Burada Obyektler bir birinin ichine set olunur. (Node) 1. Ilk add olunan zamani obyekt sonuncu index kimi yadda saxlanilir. Daha sonra her add zamani yadda saxlanan sonuncu obyekte yeni gelen obyekt set olunur. 2. Remove zamani ArrayList den ferqli olaraq burada optimal gedir. Remove olunacaq obyekt yerine ozunden sonraki obyekt set olunur. 3. get prosesi burada optimal veziyyet...