Gerbang API Apache APISIX
Apache APISIX adalah API Gateway yang dinamis, real-time, dan berkinerja tinggi.
APISIX API Gateway menyediakan fitur manajemen lalu lintas yang kaya seperti penyeimbangan beban, upstream dinamis, rilis canary, pemutusan sirkuit, autentikasi, observabilitas, dan banyak lagi.
Anda dapat menggunakan APISIX API Gateway untuk menangani lalu lintas tradisional utara-selatan, serta lalu lintas timur-barat antar layanan. Ini juga dapat digunakan sebagai pengontrol masuknya k8s.
Arsitektur teknis Apache APISIX:
Masyarakat
- Mohon Tulis Ulasan untuk APISIX di G2.
- Milis: Kirim email ke [email protected], ikuti balasan untuk berlangganan milis.
- Slack Workspace - tautan undangan (Silakan buka terbitan jika tautan ini sudah habis masa berlakunya), lalu bergabunglah dengan saluran #apisix (Saluran -> Telusuri saluran -> cari "apisix").
- - ikuti dan berinteraksi dengan kami menggunakan hashtag
#ApacheAPISIX
- Dokumentasi
- Diskusi
- blog
Fitur
Anda dapat menggunakan APISIX API Gateway sebagai pintu masuk lalu lintas untuk memproses semua data bisnis, termasuk perutean dinamis, upstream dinamis, sertifikat dinamis, pengujian A/B, rilis canary, penerapan biru-hijau, laju batas, pertahanan terhadap serangan berbahaya, metrik, pemantauan alarm, observasi layanan, tata kelola layanan, dll.
Semua platform
- Cloud-Native: Platform agnostik, Tidak ada vendor lock-in, APISIX API Gateway dapat dijalankan dari bare-metal ke Kubernetes.
- Mendukung ARM64: Jangan khawatir tentang penguncian teknologi infra.
Multi protokol
- Proksi TCP/UDP: Proksi TCP/UDP dinamis.
- Proksi Dubbo: HTTP dinamis ke proksi Dubbo.
- Proxy MQTT Dinamis: Mendukung penyeimbangan beban MQTT dengan
client_id
, keduanya mendukung MQTT 3.1.*, 5.0. - proksi gRPC: Memproksi lalu lintas gRPC.
- Proksi Web gRPC: Memproksi lalu lintas Web gRPC ke Layanan gRPC.
- transcoding gRPC: Mendukung transcoding protokol sehingga klien dapat mengakses API gRPC Anda dengan menggunakan HTTP/JSON.
- Soket Web Proksi
- Protokol Proksi
- Proksi Penerusan HTTP(S).
- SSL: Memuat sertifikat SSL secara dinamis
- HTTP/3 dengan QUIC
Penuh Dinamis
- Pembaruan Terbaru dan Plugin Populer: Terus perbarui konfigurasi dan pluginnya tanpa memulai ulang!
- Proxy Rewrite: Mendukung penulisan ulang
host
, uri
, schema
, method
, headers
permintaan sebelum dikirim ke upstream. - Penulisan Ulang Respons: Tetapkan kode status respons yang disesuaikan, isi dan header ke klien.
- Penyeimbangan Beban Dinamis: Penyeimbangan beban round-robin dengan bobot.
- Penyeimbangan Beban Berbasis Hash: Keseimbangan beban dengan sesi hashing yang konsisten.
- Pemeriksaan Kesehatan: Aktifkan pemeriksaan kesehatan pada node upstream dan secara otomatis akan memfilter node yang tidak sehat selama penyeimbangan beban untuk memastikan stabilitas sistem.
- Circuit-Breaker: Pelacakan cerdas terhadap layanan hulu yang tidak sehat.
- Proxy Mirror: Menyediakan kemampuan untuk mencerminkan permintaan klien.
- Traffic Split: Memungkinkan pengguna untuk secara bertahap mengarahkan persentase lalu lintas antara berbagai upstream.
Perutean yang terperinci
- Mendukung pencocokan jalur lengkap dan pencocokan awalan
- Mendukung semua variabel bawaan Nginx sebagai ketentuan untuk perutean, sehingga Anda dapat menggunakan
cookie
, args
, dll. sebagai kondisi perutean untuk mengimplementasikan rilis canary, pengujian A/B, dll. - Mendukung berbagai operator sebagai kondisi penilaian untuk perutean, misalnya
{"arg_age", ">", 24}
- Mendukung fungsi pencocokan rute khusus
- IPv6: Gunakan IPv6 untuk mencocokkan rute.
- Mendukung TTL
- Prioritas dukungan
- Mendukung Permintaan Http Batch
- Mendukung rute pemfilteran berdasarkan atribut GraphQL
Keamanan
- Dukungan otentikasi & otorisasi yang kaya:
- autentikasi kunci
- JWT
- autentikasi dasar
- serigala-rbac
- kabin
- jubah kunci
- casdoor
- Daftar Putih/Daftar Hitam IP
- Daftar Putih/Daftar Hitam Referensi
- IdP: Mendukung platform Identitas eksternal, seperti Auth0, okta, dll.
- Batas-persyaratan
- Batas-hitungan
- Batas-konkurensi
- Anti-ReDoS (Penolakan Layanan ekspresi reguler): Kebijakan bawaan untuk Anti ReDoS tanpa konfigurasi.
- CORS Aktifkan CORS (Berbagi sumber daya lintas asal) untuk API Anda.
- Pemblokir URI: Blokir permintaan klien berdasarkan URI.
- Permintaan Validator
- CSRF Berdasarkan cara
Double Submit Cookie
, lindungi API Anda dari serangan CSRF.
ramah OPS
- Pelacakan zipkin: Zipkin
- APM sumber terbuka: mendukung Apache SkyWalking
- Bekerja dengan penemuan layanan eksternal: Selain etcd bawaan, ini juga mendukung Konsul, Konsul_kv, Nacos, Eureka, dan Zookeeper (CP).
- Pemantauan Dan Metrik: Prometheus
- Pengelompokan: Node APISIX tidak memiliki kewarganegaraan, membuat pengelompokan pusat konfigurasi, silakan merujuk ke Panduan Pengelompokan dll.
- Ketersediaan tinggi: Dukungan untuk mengonfigurasi beberapa alamat dll di cluster yang sama.
- Dasbor
- Kontrol Versi: Mendukung pengembalian operasi.
- CLI: startstopreload APISIX melalui baris perintah.
- Standalone: Mendukung pemuatan aturan rute dari file YAML lokal, lebih ramah seperti di bawah kubernetes (k8s).
- Aturan Global: Memungkinkan menjalankan plugin apa pun untuk semua permintaan, misalnya: laju batas, filter IP, dll.
- Kinerja tinggi: QPS inti tunggal mencapai 18k dengan penundaan rata-rata kurang dari 0,2 milidetik.
- Injeksi Kesalahan
- REST Admin API: Menggunakan REST Admin API untuk mengontrol Apache APISIX, yang hanya mengizinkan akses 127.0.0.1 secara default, Anda dapat mengubah
allow_admin
di conf/config.yaml
untuk menentukan daftar IP yang diizinkan untuk memanggil Admin API . Perhatikan juga bahwa Admin API menggunakan kunci autentikasi untuk memverifikasi identitas pemanggil. - Logger Eksternal: Ekspor log akses ke alat manajemen log eksternal. (Logger HTTP, Logger TCP, Logger Kafka, Logger UDP, Logger RocketMQ, Logger SkyWalking, Logging Cloud Alibaba (SLS), Logging Google Cloud, Logging HEC Splunk, Logger File, Logging Loggly SolarWinds, TencentCloud CLS).
- ClickHouse: dorong log ke ClickHouse.
- Elasticsearch: mendorong log ke Elasticsearch.
- Datadog: memasukkan metrik khusus ke server DogStatsD, disertakan dengan agen Datadog, melalui protokol UDP. DogStatsD pada dasarnya adalah implementasi protokol StatsD yang mengumpulkan metrik khusus untuk agen Apache APISIX, menggabungkannya menjadi satu titik data dan mengirimkannya ke server Datadog yang dikonfigurasi.
- Grafik helm
- HashiCorp Vault: Mendukung solusi manajemen rahasia untuk mengakses rahasia dari penyimpanan aman Vault yang didukung dalam lingkungan dengan kepercayaan rendah. Saat ini, kunci RS256 (pasangan kunci publik-swasta) atau kunci rahasia dapat ditautkan dari brankas di plugin autentikasi jwt-auth menggunakan sumber daya Rahasia APISIX.
Sangat terukur
- Plugin khusus: Memungkinkan pengait fase umum, seperti
rewrite
, access
, header filter
, body filter
dan log
, juga memungkinkan untuk mengaitkan tahap balancer
. - Plugin dapat ditulis dalam Java/Go/Python
- Plugin dapat ditulis dengan Proxy Wasm SDK
- Algoritme penyeimbangan beban khusus: Anda dapat menggunakan algoritme penyeimbangan beban khusus selama fase
balancer
. - Perutean khusus: Mendukung pengguna untuk mengimplementasikan sendiri algoritma perutean.
Dukungan Multi-Bahasa
- Apache APISIX adalah gateway multi-bahasa untuk pengembangan plugin dan menyediakan dukungan melalui
RPC
dan Wasm
. - Cara RPC, adalah cara yang ada saat ini. Pengembang dapat memilih bahasa sesuai dengan kebutuhan mereka dan setelah memulai proses independen dengan RPC, ia bertukar data dengan APISIX melalui komunikasi RPC lokal. Hingga saat ini, APISIX memiliki dukungan untuk Java, Golang, Python dan Node.js.
- Wasm atau WebAssembly, adalah cara eksperimental. APISIX dapat memuat dan menjalankan bytecode Wasm melalui plugin wasm APISIX yang ditulis dengan Proxy Wasm SDK. Pengembang hanya perlu menulis kode sesuai SDK lalu mengkompilasinya menjadi bytecode Wasm yang berjalan di Wasm VM dengan APISIX.
Tanpa server
- Fungsi Lua: Memanggil fungsi di setiap fase di APISIX.
- AWS Lambda: Integrasi dengan fungsi AWS Lambda sebagai upstream dinamis untuk memproksi semua permintaan URI tertentu ke titik akhir gateway API AWS. Mendukung otorisasi melalui kunci api dan rahasia akses AWS IAM.
- Azure Functions: Integrasi yang lancar dengan Azure Serverless Function sebagai upstream dinamis untuk memproksi semua permintaan URI tertentu ke cloud Microsoft Azure.
- Apache OpenWhisk: Integrasi yang mulus dengan Apache OpenWhisk sebagai upstream dinamis untuk memproksi semua permintaan URI tertentu ke cluster OpenWhisk Anda sendiri.
Memulai
Instalasi
Silakan merujuk ke dokumentasi instalasi.
Memulai
Panduan memulai adalah cara terbaik untuk mempelajari dasar-dasar APISIX. Cukup ikuti langkah-langkah di Memulai.
Selanjutnya, Anda dapat mengikuti dokumentasi untuk mencoba lebih banyak plugin.
API Admin
Apache APISIX menyediakan REST Admin API untuk mengontrol cluster Apache APISIX secara dinamis.
Pengembangan plugin
Anda dapat merujuk ke panduan pengembangan plugin, dan contoh implementasi kode plugin example-plugin
. Membaca konsep plugin akan membantu Anda mempelajari lebih lanjut tentang plugin.
Untuk dokumen lebih lanjut, silakan merujuk ke situs Dokumentasi Apache APISIX
Tolok ukur
Menggunakan server delapan inti AWS, QPS APISIX mencapai 140.000 dengan latensi hanya 0,2 ms.
Skrip benchmark telah bersumber terbuka, selamat mencoba dan berkontribusi.
APISIX juga bekerja dengan sempurna di AWS graviton3 C7g.
Kisah Pengguna
- Platform eFactory Eropa: API Security Gateway – Menggunakan APISIX di Platform eFactory
- Perangkat Lunak Sistem Referensi Copernicus
- Lebih Banyak Cerita
Siapa yang Menggunakan Gerbang API APISIX?
Berbagai macam perusahaan dan organisasi menggunakan APISIX API Gateway untuk penelitian, produksi, dan produk komersial, berikut beberapa di antaranya:
- dinding udara
- Bilibili
- CVTE
- Platform eFactory Eropa
- Sistem Referensi Copernicus Eropa
- Geely
- MENGHORMATI
- Robotika Cakrawala
- iQIYI
- Lenovo
- JPL NASA
- Nayuki
- OPPO
- QingCloud
- Swisscom
- Permainan Tencent
- perjalanansky
- vivo
- SinaWeibo
- Kota We
- WPS
- XENG
- Perbesar
Logo
- Logo Apache APISIX (PNG)
- Sumber logo Apache APISIX
Ucapan Terima Kasih
Terinspirasi oleh Kong dan Oranye.
Lisensi
Lisensi Apache 2.0