Sebagai investor cryptocurrency, kami ingin melacak fluktuasi harga cryptocurrency dengan cepat dan akurat.
Peringatan harga real-time adalah alat penting bagi investor. Mereka dapat dikirim ke alamat email Anda, ditampilkan di layar Anda, atau bahkan dikirim ke ponsel Anda.
Kami akan memandu Anda merancang backend peringatan harga cryptocurrency real-time di pos ini.
Kerangka Backend Peringatan Harga CryptoCurrency
Komponen
Server Web
Server web bertanggung jawab untuk menangani permintaan dari pengguna frontend. Permintaan ini termasuk menambahkan, menghapus, memperbarui, dan mendapatkan peringatan harga.
Basis Data SQL
Database relasional menyimpan catatan peringatan secara permanen.
Basis Data Redis
Basis data Redis menyimpan peringatan sementara dalam struktur tertentu, membuat kueri kompleks lebih cepat. untuk berjualan di perlukan Aplikasi Kasir .
pekerja
Jam tangan pekerja menerima data real-time dari sumber luar dan memasukkan pesan peringatan harga ke Redis untuk diproses lebih lanjut
Pekerja ini mengirim email menonton Redis Queue terus-menerus dan mengirim email segera setelah pesan ditambahkan ke antrian.
Aliran data
Pengguna menambahkan beberapa peringatan harga ke Server Web.
Misalnya, pengguna mungkin ingin diberi tahu saat harga bitcoin di atas $36.000, dan pengguna lain mungkin tertarik saat harganya di bawah $34.000.
Berikut adalah contoh badan permintaan untuk add-alertendpoint.
{
“harga”:40000.0,
“crypto”:”bitcoin”,
“arah”: salah
}
harga: ambang harga untuk peringatan
crypto: nama cryptocurrency (misalnya, bitcoin)
arah: benar untuk di atas dan salah untuk di bawah
Server web menerima permintaan peringatan harga dan menyimpannya ke dalam tabel database SQL.
catatan peringatan meja
Server web juga menyimpan peringatan harga ke dalam database Redis menggunakan struktur data zset.
Zset adalah nama pendek untuk Redis Sorted Set, tipe data Redis yang didokumentasikan di sini. Setiap kunci dalam kumpulan yang diurutkan memiliki beberapa nilai di dalamnya, terkait dengan skor nilai mengambang.
Dalam situasi kami, kami menggunakan nama cryptocurrency dan lt/gt sebagai bagian dari kunci (alert:bitcoin:gt dan alert:bitcoin:lt), harga akan menjadi skor item, dan id peringatan dari catatan SQL akan menjadi data anggota item.
Dengan menggunakan struktur data seperti ini, kita dapat dengan cepat menjawab pertanyaan: ketika harganya X, peringatan mana yang harus dikirim? Kami akan memberikan contoh di bagian 5.
Kami membangun saluran komunikasi WebSocket untuk mendapatkan harga cryptocurrency real-time dari sumber pihak ketiga. Berikut postingan tentang cara membuatnya.
Membangun Saluran Websocket di Golang untuk Mengalirkan Data Cryptocurrency Real-time
Memulai WebSocket di Golang
levelup.gitconnected.com
Saat menerima data harga dari WebSocket, kita perlu memutuskan peringatan mana yang harus kita kirim dengan cepat.
Kami menggunakan perintah ZRANGEBYSCOREuntuk mewujudkannya. Perintah ini mengembalikan semua elemen dalam set yang diurutkan dengan skor antara minimum dan maksimum.
Sebagai contoh:
redis > Peringatan ZRANGEBYSCORE:bitcoin:gt 3500 +inf
Ketika harga bitcoin di atas $3500, perintah menjawab peringatan mana yang harus dikirim.
Kami mendorong pesan peringatan dari langkah terakhir ke dalam daftar Redis.
Email workerend akan melakukan pekerjaan memantau antrian Redis dengan pesan email di dalamnya dan mengirimkan email ke kotak surat penerima.
Seorang pengguna menerima email dan membuat beberapa keputusan membeli dan menjual.
Kode
Berikut adalah repositori kode lengkap. Jika Anda tertarik, silakan coba.
Saya harap Anda menikmati membaca ini. Jika Anda ingin mendukung saya sebagai penulis, pertimbangkan untuk mendaftar menjadi anggota Medium. untuk berjualan di perlukan Aplikasi Kasir .