Bergabunglah dengan keluarga Talkhouse? | WebRTC Berbasis Peer to Peer Voice, Video Calling, dan Appaging App Build With Mern Stack
Sebuah aplikasi e-commerce microsynch-berbasis komunikasi berbasis peristiwa yang dibuat oleh Event yang dibuat menggunakan Express, TypeScript, Nats-Streaming, dan Next.js
Ini adalah aplikasi web berbasis e-commerce untuk membeli dan menjual tiket berbagai acara langsung dan menyenangkan yang terjadi di sekitar kota berdasarkan arsitektur layanan mikro. Aplikasi ini dipecah menjadi beberapa layanan individu yang berbicara satu sama lain melalui acara penerbitan melalui bus acara. Setiap layanan bertanggung jawab untuk menangani dan mengimplementasikan fitur spesifik dari aplikasi seperti Auth Service Handles Authentication, pesanan Layanan menangani pesanan, layanan pembayaran mengimplementasikan pembayaran pengguna dan semua layanan ini berfungsi dan berkomunikasi secara tidak sinkron melalui bus acara (NATS-streaming) untuk menjalankan seluruh aplikasi
Menggunakan arsitektur Microservices dan tidak mengandalkan pola monoloith membuat aplikasi lebih tahan lama, toleran kesalahan, sangat tersedia dan meningkatkan waktu aplikasi. Jadi, jika salah satu layanan macet, bagian lain dari aplikasi masih akan fungsional dan tersedia untuk pengguna. Layanan microser dan sistem terdistribusi adalah jantung dari perangkat lunak modern dan rekayasa backend.
Next.js untuk rendering sisi server dan membangun frontendExpress.js digunakan untuk membangun backendMongodb sebagai databaseMongoose sebagai ormTypescript , backend ditulis sepenuhnya dalam naskah untuk mencegah sakit kepala yang Anda dapatkan saat jumlah peristiwa yang tidak ada di sekitar tanpa petunjukStripe untuk menangani pembayaranJest and Supertest untuk pengujianDocker untuk kontainerisasiKubernetes untuk orkestrasi conatinerSkaffold yang memfasilitasi pengembangan berkelanjutan untuk aplikasi asli Kubernetes. Membuat bekerja dengan dan mengelola Kubernetes dan berbagai layanan Kubernetes dan penyebaran jauh lebih mudah.NATS Streaming digunakan sebagai bus acara atau antrian pesan untuk mempublikasikan dan menangani acara yang dipancarkan oleh berbagai layanan.Bull.js adalah sistem antrian yang cepat dan kuat. Ini digunakan untuk mengimplementasikan timer pembayaran kedaluwarsa.Aplikasi ini dibagi menjadi 7 layanan yang menangani dan mengimplementasikan fitur dan fungsionalitas aplikasi tertentu:
auth menangani seluruh otentikasi dan otorisasi aplikasi. Otentikasi berbasis JWT dan cookie digunakan.expiration menangani timer pembayaran kedaluwarsa untuk memastikan pengguna membayar dalam kerangka waktu yang ditentukan.orders untuk menangani pesanan penggunapayments untuk Menangani Pembayaran Stripetickets untuk menangani tiket (membuat, memperbarui, mengambil). Alih-alih menjual produk, aplikasi e-commerce ini menjual tiket berbagai acara langsung yang terjadi di sekitar kota.common Semua fungsionalitas umum seperti kebutuhan membutuhkan, penanganan kesalahan, dan tiddware dan fungsi lainnya yang dibagikan oleh berbagai layanan dikelompokkan bersama. Layanan ini diterbitkan sebagai paket NPM dan diinstal di layanan lain yang akan digunakan.client menangani dan mengimplementasikan frontend aplikasi.infra mengelola semua file penyebaran dan layanan Kubernetes (.yaml) yang menjalankan aplikasi Setiap layanan, database MogongoDB, dan server streaming NATS dipalsukan sebagai wadah Docker. Docker Conatiners dikelola dan diatur oleh file -file Kubernetes masing -masing.yaml di dalam direktori infra. Komunikasi antara penyebaran Kuberentes yang berbeda diatur oleh Layanan ObjectType. Akhirnya layanan masuk, yang menggunakan Ingress-Nginx (pengontrol masuk untuk Kubernet menggunakan Nginx) sebagai proxy terbalik dan penyeimbang beban ke proxy atau langsung permintaan yang masuk ke layanan masing-masing di bawah nama ticketing.dev . Skaffold digunakan untuk mendapatkan semua penyebaran dan layanan Kubernetes dan berjalan dengan satu perintah skaffold dev yang menggunakan file skaffold.yaml.
Mendapatkan proyek ini dan berjalan di mesin lokal Anda adalah tugas yang terkenal DFFicule. Dibutuhkan beberapa pengetahuan Ekosistem Docker dan Kubernetes. Jika Anda masih siap menghadapi tantangan, atau jika Anda tidak memiliki kehidupan, cobalah membuatnya berhasil. Pastikan Anda memiliki Docker, Kubernetes dan Skaffold terpasang. Atur variabel lingkungan yang diperlukan dan jalankan perintah berikut:
skaffold dev
Dan aplikasi boom akan berjalan dan berjalan, tidak ada pengaturan tambahan dan dependensi yang diperlukan.
Untuk menghapus sumber daya apa pun yang digunakan oleh Skaffold dan hentikan semua penyebaran, layanan, dan wadah berjalan
skaffold delete
Coba jalankan dan uji secara lokal hanya jika Anda tidak memiliki kehidupan. Kalau tidak, saya bukan orang yang harus disalahkan karena Anda menggaruk -garuk kepala? Sambil mencoba memahami kekacauan layanan mikro ini dari komunikasi yang digerakkan oleh acara antara layanan?