Posts
MariaDB Load Balancing
MySQL atau MariaDB seringkali digunakan untuk DBMS relasional. Pada penggunaan pribadi atau skala kecil menengah, satu instance MySQL atau MariaDB sudah cukup untuk memenuhi kebutuhan. Namun, pada skala besar, seringkali ditemukan kendala seperti tidak mampu menangani rekues, eksekusi kueri yang lambat, dan lain-lain.
Dalam menanggapi permasalahan tersebut, terdapat beberapa solusi yang dapat diterapkan antara lain tuning di DBMS,tuning di level sistem operasi, scale-up,atau load balancing. Pada tulisan ini saya akan mencoba melakukan load balancing MariaDB.
Posts
Single Linked List
Pengertian Single Linked List Linked List adalah sekumpulan node data yang terurut linear atau sekuensial. Node adalah istilah untuk elemen pada suatu list. Pada kondisi paling sederhana,node memiliki setidaknya dua atribut yaitu data dan referensi untuk node selanjutnya.
Single Linked List adalah linked list dengan node yang memiliki data dan reference link (biasanya disebut next) yang menunjuk ke node lain pada list. Pada implementasinya, terdapat dua variasi single linked list yaitu circular dan non-circular.
Posts
Memasang Oracle JDK di Linux
Oracle JDK (Java Development Kit) adalah development kit Java yang disediakan oleh Oracle. Oracle JDK banyak digunakan untuk proyek berbasis Java di skala enterprise, Oracle JDK juga menyediakan library yang hanya tersedia dibawah distribusi paket ini.
Pada distribusi Linux, JDK yang disediakan pada repositori adalah OpenJDK. Pada beberapa kondisi, OpenJDK tidak dapat digunakan oleh aplikasi tertentu. Pada tulisan ini saya akan berbagi cara memasang Oracle JDK di sistem operasi Linux dengan sampel distribusi yaitu Ubuntu.
Posts
Tutorial REST API CRUD dengan NodeJS
Setelah mengenal REST API pada post sebelumnya di Pengantar REST API, saya akan membuat contoh REST API untuk CRUD dengan contoh model yaitu User.
Desain REST API Berikut adalah desain API yang akan saya buat,
System Requirements Untuk dapat membuat API ini, saya menggunakan perangkat sebagai berikut:
NodeJS LTS dengan NVM, pemasangan dapat dibaca di Setup NodeJS dan MongoDB di Linux. MongoDB, dapat gunakan tautan yang sama untuk contoh pemasangannya.
Posts
Pengantar REST API
REST API banyak digunakan saat akan membuat aplikasi. Dengan REST API saya dapat membuat aplikasi yang multiplatform, karena saya tidak perlu implementasikan fungsi-fungsi CRUD (misalnya) pada tiap platform. Saya cukup menggunakan API yang disediakan untuk memanipulasi basis data yang digunakan aplikasi.
Gambar diatas merupakan diagram dari REST API. Biasanya pada REST API memanfaatkan HTTP Request, misal seperti GET untuk ambil data, POST untuk masukkan data, PUT untuk pembaharuan data, DELETE untuk hapus data.
Posts
Message Queue Telemetry Transport (MQTT)
Message Queue Telemetry Transport (MQTT) adalah protokol layer aplikasi yang didesain khusus untuk constrained-device [1]. Constrained-device yang dimaksud disini yaitu perangkat yang memiliki keterbatasan disisi resources. MQTT menggunakan arsitektur dengan model topic-based publish-subscribe.
Pada MQTT, akan ada setidaknya tiga pemeran utama yaitu publisher, subscriber, dan broker (lihat gambar diatas). Publisher adalah peran yang memberikan suatu pesan kepada topik tertentu. Subscriber yaitu klien yang subscribe suatu topik, sehingga ketika publisher mengirimkan pesan ke topik tersebut, subscriber dengan topik yang sama akan menerima pesan tersebut.
Posts
Instalasi Mosquitto di Alpine Linux
Mosquitto adalah broker MQTT opensource. MQTT adalah protokol konektivitas Machine-to-Machine (M2M) atau Internet of Things. MQTT dirancang seringan mungkin dengan menggunakan model publish dan subscribe. Untuk lebih lanjut mengenai MQTT dapat dibaca melalui referensi lain, atau mungkin akan saya post juga di blog ini baca tulisan berikut Message Queue Telemetry Transport (MQTT).
Saya akan melakukan pemasangan Mosquitto untuk MQTT broker dengan Alpine Linux dengan mesin virtual. Sedangkan untuk klien publish dan subscribe saya gunakan host utama.
Posts
Iseng, RAID0 dengan USB Flash Drive
RAID adalah teknik striping, mirroring, atau paritas untuk membentuk penyimpanan yang handal dengan memanfaatkan beberapa disk. Terdapat beberapa jenis level pada RAID, di tulisan selanjutnya mungkin saya bisa memaparkan beberapa :D.
Nah, Biasanya RAID diimplementasikan dengan disk seperti HDD ataupun SSD. Sekarang, saya ingin mencoba membuat RAID dengan dua buah Flash Drive dengan RAID0.
Barang dan Bahan Barang yang dibutuhkan yaitu dua buah Flash Drive. Berikut Flash Drive yang saya gunakan, masing-masing DISK1 dan DISK2.
Posts
Setup Node.JS dan MongoDB di Linux
Node.JS dan MongoDB adalah perangkat lunak populer saat ini. Platform Node.JS dan Database MongoDB banyak digunakan untuk membuat aplikasi real-time. Pada kesempatan ini saya akan melakukan setup dan konfigurasi Node.JS dan MongoDB di Linux.
Setup Node.JS Beberapa distribusi Linux sudah terdapat paket Node.JS di repositorinya. Tetapi, kali ini saya akan memasangnya dengan Node Version Manager (NVM) oleh creationix. Karena, NVM memungkinkan user menggunakan beberapa versi node.js dan lebih baik dalam manajemen paket (tidak mengganggu sistem, pemasangan paket global tidak perlu akses root).
Posts
High Availability Splash Cluster dengan HA-Proxy
Pada tulisan sebelumnya di Integrasi Splash dengan Scrapy, saya mencoba untuk integrasi Splash dengan Scrapy. Awalnya saya menggunakan satu kontainer Splash untuk crawling, tetapi ternyata terkendala saat menggunakan concurrent requests yang sedikit tinggi dan juga situs dengan script yang lumayan berat. Berikut dua isu utama yang sering saya temui saat crawling
504 Gateway Timeout - umumnya error ini disebabkan oleh timeout saat fetching karena faktor tertentu, misal : script yang berat.