Backpressure - Senior Programmer Wajib Ngerti
Ғылым және технология
Backpressure - Senior Programmer Wajib Ngerti
00:00:00 - Pendahuluan
00:00:57 - Apa itu Backpressure?
00:05:35 - Multi Threaded
00:11:03 - Horizontal Scaling
00:15:22 - Queue
00:19:13 - Reject
00:25:30 - Message Broker
00:31:28 - Penutup
JOIN PREMIUM : kzread.info...
DISCORD PREMIUM : • Post
Donasi :
Saweria : saweria.co/ProgrammerZamanNow
Social Media :
Instagram : / programmerzamannow
Facebook : / programmerzamannow
Telegram : t.me/ProgrammerZamanNow
KZread : / programmerzamannow
Пікірлер: 129
Setelah menonton ini, merasa senior 📈
@ProgrammerZamanNow
10 ай бұрын
Jadi senior enginner dalam 30 menit
@ecengclub7196
10 ай бұрын
@@ProgrammerZamanNowsaya nontonya 2x jadi 15 menit beres 🤣
@edigunawan1062
10 ай бұрын
Gw malah kena Dunning kruger. Langsung merasa bego 😂
Pak buat playlist, course atau tutorial yg bahas senior programmer wajib ngerti gini dong pak
saya cuma bisa ucapin terimakasih banyak pak Eko atas ilmunya,, semoga pak Eko diberi keberkahan umur untuk dapat terus berbagi kepada kami yang fakir ilmu..
Terimakasiah Pak Eko atas ilmu yang diberikan. Sukses dan sehat selalu. 👍👍👍
wah udah lama nich pakai queue, reject, tapi baru sekarang tau kalau proses2 itu solusi backpresure( istilah ini baru tahu, hehehe ). Terima kasih ilmunya Pak.
Konten bagus ngebahas permasalahan2 d lapangan
Makasih pak Eko, sangat bermanfaat banget ilmunya dan jarang juga yang bahas materi seperti ini
mantap Pak Eko, ini materi yang ditunggu2
mantap ilmunya pak, load balance di horizontal scaling sih paling enak, dengan manajemen resiko tentunya
makasih ilmunya sangat luar biasa
Mantap pak Eko, saya request materi SQLC golang dong pak
Terima kasih videonya pak. Dari ulasannya, imho cuma teknik rejection yang termasuk dalam back pressure, yang lain adalah cara menghandle spike, bukan back pressure itu sendiri. Pemahaman saya back pressure adalah teknik memberi sinyal ke client bahwa sistem dalam keadaan sibuk. Contoh lain implementasi back pressure adalah 1) menambah delay virtual untuk mengerem rate request client, 2) memberikan informasi di response ke client supaya client menahan request berikutnya supaya jangan terlalu cepat, 3) memberikan informasi di response client untuk mengulang request ke alamat server lain yang tidak sibuk.
@bukangarii
10 ай бұрын
tul
Yey dibuatin sama puh sepuh
Mantap mas, ini ilmu yg advance di jabarin dalam 30 menit, menurut saya solusi paling enak antara scaling klo harus real-time tapi klo bisa async pake message broker
@ProgrammerZamanNow
10 ай бұрын
Semoga bermanfaat
Thanks pak materinya!
Pernah ngalamin di nestjs, dan alhamdulillah solusinya adalah worker_threads dan observable rxjs pustaka yang bener² penolong disaat itu...
ilmu mahal ini, mantap
good jobs senior
the best bener emg sepuh satu ini
materi keren 👍
Mantap Pak Eko !!!
mantap pak echo materinya. Kalo dari sisi aplikasi sudah dibahas mengenai solusi backpressure. Nah kalo dari aplikasi nya kencang tapi database nya yang sekarang lambat atau tidak mampu menyamai kecepatan aplikasi itu bagaimana ya approach solusi nya pak? Nuhun pak🙏
sering seringin bikin materi seperti ini pak eko
@ProgrammerZamanNow
10 ай бұрын
pasti
nambahin pa untuk nodejs ada child process & multi threads(cluster) default nodejs / expressjs running di 1 threads (apapun cpu nya, 1 core = bisa banyak threads (misal cpu intel i3 gen 3 gen 4, 2 core tapi punya 4 threads) multi threads = menggunakan semua threads (gabung threads berdasarkan jumlah threads yng diinginkan) , kurang significant kalo di nodejs , masih lebih bagus semua threadsnya pake child process (latency nya lebih ringan) child process = menggunakan threads berdasarkan yang dipilih (ini setiap threads gak nungguin threads lain, threads 1 gak nungguin threads 2, tapi threads 2 tetep masuk beban nungguin threads 2 kalo ada antrian berlanjut) biasanya saya kalo misal punya core 8 core 16 threads , 4 threads jadi multithreads, 8 threadsnya child process (trs saya buat child processnya ngurut processnya untuk setiap threads process jadi gak dobel request di setiap threads yg sama dalam waktu bersamaan), sisa threadsnya untuk handle vm, promotheus(node exporter,pm2 exporter), jenkins ssh agent, biar gak terlalu berat kalo di NestJs ada adapter (fastfiy) yang bikin lebih cepet juga CMIIW
Terbaik!
Hadir nyimak
Sehat sehat kang
makasi pak
Pake reactive sptnya mudah ditangani
Setupnya mantap sekarang pak.. Buricak burinong..
@ProgrammerZamanNow
10 ай бұрын
eplok cendol
boleh dong pak dibahas lebih detail tentang antrian
kalo backpressure dari sisi databasenya gimana pak eko?
Kelas android sampai expert dong pak eko hehe
2:55 Mas cara hitung aplikasi kita bisa handle berapa request per second itu gimana ya?
Pak izin , bahas tentang penjualan website freelance yang di jual ulang oleh pembeli , gimana mengatasi itu pak ? Apa aja yg saya harus pelajari juga , terima kasih pak
👍👍👍
#tanya nulis2 nya masih di pen tablet ato di magic trackpad pak?
Biasanya bottle neck terjadi di akses storage, bisakah mas Eko bahas detail bgmn mengatasi bottle neck di storage/database? terima kasih
@ProgrammerZamanNow
10 ай бұрын
Bisa di bikin vlog lagi
tapi kalo misal horizontal scale, dia kan bisa ada kemungkinan race condition ga ya? kan bisa jadi dia ngproses di waktu yg sama
cuman kalau message brocker itu berarti harus selalu sukses ya? kalau response failnya apa musti di validate dlu kah di applikasi proxynya.
Mas Eko, thread ini mengunakan paralel kan ya?,di video go coroutines di jelaskan proses i/o bond seperti pengambilan API di database implementasi thread(paralel) tidak terlalu membantu meningkatkan performa, namun dalam penjelasan ini bisa digunakan meningkatkan performa? Kenapa bisa beda ya mas? Apakah setiap thread itu mengabil data/proses i/o secara bersamaan?
Hi Eko, menarik dengan ucapan "abuse" (21.59-22.00) apa itu dan boleh lampirkan referensi tentang pengertiannya?
bagian message broker mirip kayak mqtt broker ya?
Absen
saya masih mahasiswa tapi saya nonton saja
Saya membagikan dengan Vendor IT Website Kereta Cepat Indonesia Cina~
@ProgrammerZamanNow
10 ай бұрын
Silahkan
Nanya mas. tolong dikoreksi klo salah, sepemahaman saya, thread ini berbanding lurus dengan jumlah core yang kita punya. misalkan, saya punya server dengan 2 cores. klo saya buat 100 thread maka ini justru akan memperlambat performance (karena pembuatan thread itu ada overhead costnya) jadi idealnya, jumlah thread itu relative sama atau sedikit lebih besar dari jumlah core di server. saya sudah tidak pernah bermain thread di level coding (buat thread secara manual), saya prefer pakai high level library/tools yang sudah accomodate management thread di belakang layar(alokasi thread, komunikasi ke thread pool, assignment, dll). alasannya karena saya prefer delegate hal2 seperti ini dari pada kita sebagai engineer yang harus mengerjakan detailnya. contoh, di JAVA saya pernah pakai PCDP library,di .NET ada TPL yang sediakan high level API untuk parallel programming. either ini CPU atau I/O bound works, harusnya teorinya masih sama. Sedikit tambahan dari pengalaman pribadi, jangan blindly increase jumlah thread secara signifikan. baiknya, naikan jumlah thread secara bertahap sedikit demi sedikut. kemudian lihat performancenya. you can thank me later.
@jeckyfreaky
10 ай бұрын
kalau nonton sampai habis, dijelaskan juga sama kang eko kalau multi thread ini bukan solusi yang paling ampuh, makanya dijelasinnya bertahap dari yang level 1-5. multi thread, horizontal/verical scale, queue, reject request, baru yang paling ampuh messege broker
@ProgrammerZamanNow
10 ай бұрын
tergantung, kalo cpu bound benar, jumlah thread tidak boleh lebih dari cpu, karena percuma, nanti thread nya gak kerja karena rebutan cpu tapi rata2 aplikasi kita jarang cpu bound, kebanyakan io bound, karena cuma tektokan sama database dan betul, jangan seenaknya naikin jumlah thread, karena bisa makan memory terlalu besar
@MrEdot
10 ай бұрын
@@jeckyfreaky saya ga bahas soal ampuh ga ampuh, saya bahas konsep parallel programming. engineering solution itu soal trade-off. ga ada itu paling ampuh atau paling bagus.
@MrEdot
10 ай бұрын
@@ProgrammerZamanNowklo I/O bound secara teori jumlah thread at most berapa kali jumlah core mas? saya cuma pernah at most 2 kali jumlah cores. klo diatas itu, performancenya relative menurun.
@ProgrammerZamanNow
10 ай бұрын
gak ada aturan juga sebenernya, karena kan tetep walaupun iobound, soal speed proses dan logic, balik lagi ke kode kita masing2, jadi mau gak mau harus tetep di perf test tiap ngerubah setting thread nya
Nice content pak eko 👏👏👏. Terimakasih banyak utk ilmu2 nya slama ini. Sukses selalu buat channel PZN. Anw, izin bertanya. Ada kemungkinan ga ya ketika implementasi message broker, API yang udah di horizontal scale nge consume message/request yang sama ? Misalnya jadi malah ada 2 server API yang nge proses gitu Atau yg kek gini biasa nya udah dihandle oleh message brokernya supaya ga kejadian?
@ibanrama
10 ай бұрын
kan message queue, ada juga yang namanya consumer group. jdi aman kalo event driven nya bener
@TukangCodingSukaGaming
10 ай бұрын
Tergantung desain nya. Biasanya Untuk satu message bisa di setting cuma bisa di consume oleh 1 consumer meskipun ada banyak consumer yang running
@RizalHamdanArigusti-bm5dt
10 ай бұрын
@@ibanrama hoo gitu. Sip2 thank you mas
@RizalHamdanArigusti-bm5dt
10 ай бұрын
@@TukangCodingSukaGaming ho okee deh. Thank you mas
komen pertama,, cihuy,,, mohon bahas antara uuid dengan autoinrement biasa,, apakah id increment bisa menimbulkan masalah,, karena saya ngalamin, sebuah API tidak mau membuat data baru karena dianggap id sudah ada,, padahal blm ada ketika saya cek di database... thx
@ProgrammerZamanNow
10 ай бұрын
selama yang membuat auto increment nya di level database, gak masalah, kecuali di level aplikasi, itu baru msalah
@verrymariyanto8377
10 ай бұрын
yg anehnya ketika membuat di level databse,, tapi ga bisa karena dianggap sudah ada oleh orm nya,,, ada solusi kah untuk ini ? atau ada penjelasan kah? thx@@ProgrammerZamanNow
bang bikin tutorial OOP Python dong..
Horizontal scaling kalo cuman nambah vm gitu gimana?
Kan bahas end. To. End di wa
bang klo kayak menambah node di swarm atau pods di kubernetes itu termasuk solusi yang mana?
@ProgrammerZamanNow
10 ай бұрын
Horizontal scaling
mau tanya, kalo multi thread gitu, apalagi yg sistem update balance / stock. gmn handle ny y? kalo dr database locking, apakah sanggup database handle sebanyak itu request ny? 🤔
@ProgrammerZamanNow
10 ай бұрын
ada yang namanya optimistic locking
suka banget euy warnanya...
Nice pak eko. Request pak eko, bahas gimana bikin server database yang zero downtime, saat ada insiden misalnya. Pernah denger sekilas tentang replication, clustering, virtualisasi, dan lainnya apalah itu. Terima kasih.
@ProgrammerZamanNow
10 ай бұрын
Noted
@Nanonan71
10 ай бұрын
Wah menarik ini kayaknya
@flynns7
10 ай бұрын
up up, kebetulan di project skg kadang ngalamin downtime.
@devahaminapurnama
10 ай бұрын
kalau mau database zero downtime ada caranya om, saya rekomen untuk setup Galera MariaDB Cluster. Syaratnya sediain minimal 4 server, satu server untuk reverse proxy, dan 3 server lainnya sebagai node galera cluster. 4 Server itu harus memiliki minimal 4 NIC, satu mengarah ke public, satu mengarah untuk node cluster, jadi cara kerjanya ketika kita mau koneksi ke Database harus melewati Reverse Proxy bisa pakai NGINX atau HAProxy. kalau minimal node bisa baca raft consensus om. Mas eko bisa bahas zero down time dimulai dari raft consensus tersebut mungkin lebih menarik
Kang mau tanya, untui tau kapasitas requests yg bisa di handle app kita itu bagaimana ya?
@ProgrammerZamanNow
10 ай бұрын
lakuin performance test dl
Mantaps Kang kok suaranya kaya beda ya ? apakah ini kembaran kang ecko?
@ProgrammerZamanNow
10 ай бұрын
lagi serak suaranya
Pak bahas database slow query dong, kasusnya di api sudah RTO, tapi mysql masih running query, alhasil request api berikutnya jadi stuck dan lambat. Mohon solusinya
@akhmadfauzan2739
10 ай бұрын
coba solusi pake indexing, bisa juga pake sharding db
@ArislanHaikal
10 ай бұрын
@@akhmadfauzan2739 sudah mas. Indexing optimasi query sudah. Ini emng karena datanya gede aja.
sebelum habis nonton, kirain masalah sakit punggung awkaokwaoawk
@ProgrammerZamanNow
10 ай бұрын
app juga bisa sakit punggung
Pak cara tau rps dari client brp dan rps server kita mampunya brp gimana ya?
@ProgrammerZamanNow
10 ай бұрын
lakukan performance test
Trus kalau requestnya direject, response buat clientnya apa pak Eko?
@ProgrammerZamanNow
10 ай бұрын
server sedang sibuk
Pak, kapan bikin css? Saya sudah bisa dasar-dasar javascript sama html tapi masih bingung sama css😅
@ProgrammerZamanNow
10 ай бұрын
masih dibuat materinya
@kharinmuntok3633
10 ай бұрын
@@ProgrammerZamanNow Iya, terima kasih Pak Eko🙏😀
Apakah ini ada hubungannya sama microservice?
@dimaswel
10 ай бұрын
ini lebih termasuk ke concurency / thread kl disimpulkan di penjelasannya itu
Thanks pak eko disini dicontohin misalnya server bisa nerima request 100/s dsb, nah bagaimana kita bisa benchmark server kita untuk dapatin nilai tersebut? thanks pak eko
@ProgrammerZamanNow
10 ай бұрын
harus di lakukan performance test
@irdaislakhuafa1278
10 ай бұрын
test pke k6 bisa
Kalo cara menangani backpain gimana pak eko ?
@ProgrammerZamanNow
10 ай бұрын
Beli kursi yg mahal
ada suara jedug di videonya pak, kayaknya kena benturan tangan ke meja.
@ProgrammerZamanNow
10 ай бұрын
kerekam mungkin, kan mic nya diatas tangan
Kalau pake message broker atau queue, misalkan request yg masuk banyak pak, client menunggu response dan ternyata timeout yg otomatis http connectionnya closed. Atau misalkan ketika client request dan dimasukkan ke message broker/queuenya kemudian dikasih response dan http connectionnya jg langsung closed. Cara ngasih response hasil processingnya ke client bagaimana pak?
@ProgrammerZamanNow
10 ай бұрын
seperti di video saya jelaskan, tidak semua bisa pake message broker, case by case, harus nya fire and forget
@toriqahmad2401
10 ай бұрын
@@ProgrammerZamanNow kalau dikombinasikan dgn websocket masih bisa ya pak, asal gak direfresh pagenya
Maaf oot, Pakai touchpad dan keyboard apa pak?
@flashnao4360
10 ай бұрын
touchpad: nexian-pad keyboard: yamada
@valerianmp
10 ай бұрын
Sekilas lihat kayaknya magic trackpad + magic keyboardnya apple
13:56 lo punya uang lo punya solusi ......... uang >>>> genset
kalau untuk ngetest api yg kita buat sanggup melayani brp request itu pakai apa ya?
@ProgrammerZamanNow
10 ай бұрын
jmeter, gatling, vegeta, dan masih banyak yang lainnya
@akhmadfauzan2739
10 ай бұрын
K6
@akbarhday
10 ай бұрын
@@ProgrammerZamanNowhoo baru denger semua istilahnya, oke thx pak eko
1 menit pertama cuman bilang akan jelasin backpressure lompatin aja ke 01:05
pak eko, sy juga ada project terkait ini, kalo mau bikin testing terkait backpressure itu gmn kang? kemarin trouble ini, akhir nya solusi memang horizontal scalling biar cepet. nah kondisinya sy bingung untuk testing nya. misal mau bikin 100req/second itu gmn cara testing nya kang ?
@ibanrama
10 ай бұрын
apache jmeter
@ProgrammerZamanNow
10 ай бұрын
jmeter, gatling, vegeta, dan banyak tool untuk performance testing lainnya
@devahaminapurnama
10 ай бұрын
@@ProgrammerZamanNow tool jadul pak ribet setup, coba cek k6 dari Grafana
pertanyaannya... Berapa kali kata gitu ya disebut?
@ProgrammerZamanNow
10 ай бұрын
ayo tebak, nanti dapat hadiah
Queue cukurukuk...
kukira sakit pinggang wkwk
kirain backpressure sakit punggung wkwkwk
pak eko itu jualan baju kah?