Topik temu duga representatif

Temu Duga Reka Bentuk Sistem: Mereka Bentuk API Gateway Berbilang Rantau

Reka bentuk sistemSukar
Pasukan Editorial Offer.ccDiterbitkan Dikemas kini

Soalan

Reka bentuk API gateway berbilang rantau untuk 300 perkhidmatan bahagian belakang. Ia mesti mengendalikan 500,000 permintaan sesaat pada waktu puncak, menyokong 20,000 laluan, pengesahan, kuota, penghalaan canary, dan kemas kini konfigurasi tanpa mengganggu trafik, sambil mengekalkan kependaman p99 tambahan gateway di bawah 10 milisaat dan mampu bertahan daripada kegagalan peringkat rantau.

Masalah dan Kes Penggunaan

Reka bentuk titik masuk awam untuk 300 perkhidmatan bahagian belakang. Ia memuncak pada 500,000 permintaan sesaat merentasi tiga rantau aktif dan menyimpan kira-kira 20,000 definisi laluan. Gateway ini menamatkan TLS, mengesahkan pemanggil, menggunakan kebenaran kasar dan kuota, menormalkan permintaan, memilih hulu (upstream), menyokong canary berwajaran, serta mengeluarkan metrik dan jejak. Andaikan sasaran ketersediaan 99.99% dan kependaman p99 tambahan gateway kurang daripada 10 milisaat. Ini adalah input temu duga, bukan dakwaan tentang sesuatu produk.

Perubahan laluan dan dasar harus sampai ke gateway yang sihat dalam masa 30 saat. Pembatalan kelayakan kecemasan memerlukan laluan yang lebih pantas. Konfigurasi yang tidak elok tidak boleh melumpuhkan semua rantau, dan satah kawalan (control plane) yang tidak tersedia tidak boleh menghalang gateway daripada terus berkhidmat dengan konfigurasi baik terakhir yang diketahui. Logik perniagaan bahagian belakang, gubahan respons, orkestrasi aliran kerja jangka panjang dan kebenaran khusus aplikasi kekal di luar gateway.

Ini ialah soalan reka bentuk sistem peringkat kanan kerana kerja kritikal terletak di antara komponen: mentakrifkan laluan permintaan hangat (hot path), mengasingkan konfigurasi daripada trafik, mengehadkan gelagat kegagalan dan membuktikan bahawa pintu masuk kongsi global bukanlah titik kegagalan tunggal (single point of failure).

Perkara yang Dinilai oleh Penemu Duga

Jawapan yang kukuh terlebih dahulu mengasingkan satah data (data plane) daripada satah kawalan (control plane). Proses gateway serantau melayani permintaan daripada snapshot setempat yang tidak boleh diubah (immutable). Satah kawalan mengesahkan, membuat versi, menyimpan dan mengedarkan perubahan laluan dan dasar. Jika calon meletakkan carian pangkalan data atau konfigurasi jauh pada setiap permintaan, sasaran kependaman mahupun pengasingan kegagalan satah kawalan tidak akan tercapai.

Penemu duga juga menjangkakan sempadan untuk tanggungjawab gateway. Penamatan TLS, pengesahan identiti, pemadanan laluan, dasar kasar, pengehadan kadar, pengepala, masa tamat (timeout) dan telemetri adalah bersifat merentas. Pemeriksaan inventori, keputusan pembayaran dan kebenaran peringkat objek adalah kepunyaan perkhidmatan. Gateway universal yang melaksanakan pemalam perniagaan sewenang-wenangnya menjadi sukar untuk diuji dan berbahaya untuk dikeluarkan.

Kapasiti sepatutnya boleh dikira semula. Pada 500,000 permintaan sesaat, purata permintaan masuk 2 KiB adalah kira-kira 500,000 × 2 KiB ≈ 0.95 GiB/s sebelum overhed protokol. Jika satu tika gateway yang ditanda aras mengekalkan Q permintaan sesaat dengan selamat pada p99 yang diperlukan, kumpulan itu memerlukan sekurang-kurangnya ceil(500,000 / Q) tika, kemudian kapasiti tambahan untuk kehilangan rantau. Kehilangan satu daripada tiga rantau yang sama rata meningkatkan setiap rantau yang masih hidup daripada kira-kira 167,000 kepada 250,000 permintaan sesaat, peningkatan sebanyak 50%. Perancangan kapasiti mesti merangkumi keadaan tersebut.

Akhir sekali, jawapan yang lengkap merangkumi keselamatan konfigurasi, penghalaan serantau, penyebaran beban lampau, percubaan semula, kebolehmerhatian dan penurunan kualiti perkhidmatan secara eksplisit. Sekadar mengatakan “sebarkannya di beberapa rantau” tidak menjelaskan cara trafik bergerak, cara keadaan berubah atau perkara yang kekal tersedia semasa berlakunya pemisahan rangkaian (partition).

Soalan Penjelasan Sebelum Menjawab

  • Siapakah klien? Andaikan klien web, mudah alih dan rakan kongsi awam yang menggunakan API HTTP. Trafik perkhidmatan-ke-perkhidmatan dalaman boleh menggunakan dasar ingress atau service mesh yang berasingan.
  • Apakah unit ketersediaan? Suatu rantau mengandungi tika gateway merentasi sekurang-kurangnya tiga zon kegagalan. Tiga rantau ini adalah aktif-aktif, dan penghalaan global menyingkirkan rantau yang tidak sihat.
  • Adakah laluan bebas mengikut nama hos, laluan (path), dan kaedah? Ya. Susunan pemadanan mestilah deterministik, dan definisi laluan yang samar-samar ditolak sebelum diterbitkan.
  • Dasar manakah yang berjalan secara segerak? Pengesahan tandatangan, pemadanan laluan, pemeriksaan kebenaran kasar, kuota, had permintaan dan transformasi pengepala. Data perniagaan tidak pernah diambil oleh gateway untuk membuat keputusan.
  • Berapa segar konfigurasi yang diperlukan? Perubahan biasa menumpu dalam masa 30 saat. Gateway melaporkan versi yang diguna pakai. Pembatalan keselamatan menggunakan jangka hayat token yang pendek atau senarai nafi (deny list) kecil yang diedarkan secara berasingan dan bukannya memaksa binaan semula snapshot penuh.
  • Sejauh manakah kuota tepat merentasi rantau? Reka bentuk lalai menggunakan kuota serantau yang diperuntukkan daripada belanjawan global. Pembilang global yang benar-benar ketat akan menambah kebergantungan rentas rantau pada setiap permintaan dan mesti diwajarkan secara berasingan.
  • Bolehkah gateway mencuba semula? Hanya permintaan idempoten, dengan belanjawan percubaan semula yang kecil, selepas membuktikan percubaan pertama tidak diterima. Penulisan bukan idempoten memerlukan kunci keidempotenan aplikasi atau tiada percubaan semula automatik.
  • Apakah yang dikecualikan? Pembersihan DDoS sebelum gateway, pelaksanaan perkhidmatan, replikasi pangkalan data dan transaksi peringkat aplikasi adalah sistem yang berasingan.

Kerangka Jawapan 30 Saat

“Saya akan meletakkan kumpulan gateway tanpa keadaan (stateless) dalam setiap tiga rantau aktif di belakang penghalaan global yang peka kesihatan. Setiap permintaan kekal dalam satu rantau: gateway menamatkan TLS, mengesahkan identiti daripada cache kunci setempat, memadankan snapshot laluan yang tidak boleh diubah, menggunakan dasar kasar dan kuota serantau, kemudian memilih hulu rantau sama yang sihat. Satah kawalan yang berasingan mengesahkan setiap konfigurasi, menetapkan versi, menjalankan ujian canary pada kohort gateway yang kecil, dan mengaktifkannya secara atomik; gateway terus berkhidmat dengan snapshot baik terakhir yang diketahui jika satah itu gagal. Saya akan menentukan saiz setiap rantau untuk peningkatan beban 50% selepas satu daripada tiga rantau yang sama rata gagal, mengehadkan percubaan semula dan giliran untuk mengelakkan penguatan beban lampau, serta memantau kependaman tambahan, hasil laluan, kesihatan hulu, versi konfigurasi dan failover serantau.”

Perincian Langkah demi Langkah

Sistem ini mempunyai empat lapisan. Pengurusan trafik global menghantar klien ke rantau berdekatan yang sihat. Pengimbang beban serantau menyebarkan trafik ke atas tika gateway tanpa keadaan di beberapa zon. Satah data memproksi permintaan ke titik akhir perkhidmatan dalam rantau yang sama. Satah kawalan menyimpan konfigurasi yang diingini, menyusunnya ke dalam snapshot berversi dan mengedarkan snapshot tersebut secara bebas daripada laluan permintaan. Microsoft mendokumentasikan gateway sebagai titik masuk terpusat untuk penghalaan dan perhatian merentas (cross-cutting concerns), dan model gateway terurus serta dihoskan sendiri olehnya juga memisahkan konfigurasi terurus secara berpusat daripada trafik masa jalanan teragih.

Aliran permintaan biasa ialah:

  1. DNS global atau anycast memilih rantau yang sihat. Pengimbang beban serantau memilih tika gateway.
  2. Gateway menamatkan TLS, menguatkuasakan had saiz permintaan dan sambungan, serta melampirkan ID permintaan.
  3. Ia mengesahkan token yang ditandatangani menggunakan metadata pengeluar dan kunci awam yang dicache. Ia tidak pernah memanggil penyedia identiti untuk setiap permintaan.
  4. Pemadan yang dikompil menggunakan hos, kaedah dan laluan yang dinormalkan untuk memilih laluan daripada snapshot aktif.
  5. Rantaian dasar menggunakan skop kasar, kuota serantau, pengepala, masa tamat dan pemilihan canary pilihan.
  6. Gateway memilih titik akhir yang sihat daripada penemuan perkhidmatan yang dicache secara setempat dan memajukan permintaan dengan tarikh akhir terhad.
  7. Ia merekodkan hasil, kependaman, ID laluan, kluster hulu, versi konfigurasi dan konteks jejak, kemudian menstrim telemetri keluar dari laluan hangat.

Definisi laluan boleh kekal deklaratif:

text
Route {
  id: string
  host: string
  methods: string[]
  path_template: string
  upstream_cluster: string
  auth_policy_id: string
  quota_policy_id: string
  timeout_ms: uint32
  retry_policy: { max_attempts, retryable_statuses }
  traffic_split: [{ revision, weight }]
}

API kawalan menerima semakan yang diingini dengan kunci keidempotenan dan mengembalikan ID semakan. Pengesahan menyemak skema, pemadanan yang bercanggah, kluster yang dirujuk, pemilikan sijil, had dasar dan gabungan percubaan semula yang tidak selamat. Pengkompil menghasilkan snapshot yang tidak boleh diubah dengan struktur padanan prabina. Penerbitan diteruskan melalui pengesahan, perbandingan bayang (shadow), kohort canary kecil, satu zon, satu rantau, dan kemudian semua rantau. Setiap gateway memuat turun snapshot, mengesahkan checksum dan tandatangan, membinanya di luar bebenang permintaan dan menukar satu penunjuk atomik. Permintaan dalam penerbangan selesai pada snapshot lama. Pemeriksaan kesihatan yang gagal mengembalikan kohort ke versi sebelumnya.

Kesesakan paling mendalam ialah keselamatan konfigurasi pada skala kumpulan. Menghantar kemas kini boleh ubah secara individu boleh menyebabkan versi laluan, dasar dan sijil tidak konsisten. Snapshot berversi menjadikan unit pengaktifan jelas. Gateway mengekalkan snapshot terkini yang disahkan pada cakera setempat atau storan nod tahan lasak, mengekalkan sekurang-kurangnya satu versi terdahulu dan mendedahkan desired_version, downloaded_version dan active_version. Gangguan satah kawalan membekukan perubahan tetapi bukan trafik. Snapshot yang rosak atau tidak lengkap ditolak. Pembatalan kecemasan tidak perlu menunggu semua 20,000 laluan dikompil semula: kelayakan jangka hayat pendek mengehadkan pendedahan, manakala senarai nafi kecil yang ditandatangani mempunyai saluran pengedaran pantas dan tamat tempohnya sendiri.

Untuk kapasiti, tanda aras rantaian dasar yang lengkap dan bukannya proksi terbalik yang kosong. Jika tika yang diuji mengekalkan 8,000 permintaan sesaat pada p99 sasaran, trafik puncak memerlukan ceil(500,000 / 8,000) = 63 tika sebelum ruang tambahan (headroom). Dengan tiga rantau yang sama rata, kegagalan satu rantau meninggalkan 250,000 permintaan sesaat bagi setiap yang terselamat, atau 32 tika pada tanda aras tersebut; menggunakan 40–45 bagi setiap rantau memberikan ruang operasi tambahan. Angka ini adalah ilustrasi dan mesti digantikan dengan ukuran menggunakan TLS sebenar, pengesahan token, saiz muatan, pengelogan dan kependaman hulu.

Gateway mesti melepaskan beban (shed load) dan bukannya mengumpulnya. Letakkan had pada permintaan serentak, sambungan, badan permintaan, giliran setiap laluan dan penimbal telemetri. Sebarkan tarikh akhir ke hulu. Pemutus litar (circuit breaking) menghalang perkhidmatan yang gagal daripada menggunakan setiap sambungan gateway. Cuba semula hanya set sempit kegagalan idempoten, gunakan jitter dan caj setiap percubaan pada belanjawan percubaan semula. Apabila hulu tepu, mengembalikan 503 dengan segera adalah lebih selamat daripada membina giliran tanpa had yang menghabiskan gateway kongsi.

Pengesahan menggunakan pengesahan setempat untuk token yang ditandatangani. Kunci awam disegarkan secara tidak segerak, bertindih semasa penggiliran dan mengekalkan set sah terakhir yang diketahui untuk tempoh terhad. Jika token adalah legap dan introspeksi adalah mandatori, cache hasil positif pendek dan tentukan fail-open atau fail-closed mengikut risiko laluan; kebergantungan itu mengubah pengiraan ketersediaan. Pemilikan objek dan kebenaran perniagaan kekal dalam perkhidmatan kerana gateway tidak mempunyai keadaan domain yang berwibawa.

Kuota adalah serantau pada laluan hangat. Pengagih global membahagikan belanjawan penyewa kepada pajakan pendek untuk rantau, dan stor data serantau membuat keputusan atomik. Ini mengelakkan pemisahan rangkaian daripada menggandakan kuota global tanpa had, tetapi rantau yang terpencil hanya boleh membelanjakan pajakannya. Jika rantau bebas terus membenarkan kemasukan dan menyelaraskannya kemudian, ketersediaan bertambah baik manakala kemasukan berlebihan menjadi mungkin. Pemilik produk mesti memilih had tersebut. Pelaksanaan baldi token terperinci diwakilkan kepada subsistem pengehad kadar dan bukannya dibina semula di dalam setiap gateway.

AWS mendokumentasikan kedua-dua penghalaan failover aktif-pasif dan penghalaan berwajaran aktif-aktif untuk gateway berbilang rantau. Di sini, aktif-aktif mengurangkan risiko failover sejuk (cold-failover). Kesihatan adalah berhierarki: kesihatan tika menyingkirkan satu proses, isyarat zon mengalirkan keluar zon, dan prob hujung ke hujung sintetik serta kadar ralat serantau menyingkirkan rantau. Peralihan trafik dilakukan secara beransur-ansur jika boleh. Bahagian belakang serantau dan stor data mereka juga mesti bersedia; memindahkan gateway sahaja tidak boleh menjadikan perkhidmatan yang tidak tersedia kembali sihat.

Kebolehmerhatian memerlukan kependaman p50/p95/p99 tambahan gateway, kadar permintaan dan ralat mengikut laluan, kegagalan TLS dan pengesahan, hasil kuota, sambungan aktif, kedalaman giliran, percubaan semula, keadaan litar, kependaman hulu, kesihatan titik akhir dan kelengahan versi konfigurasi. Log menyampel trafik yang berjaya tetapi mengekalkan peristiwa keselamatan dan ralat di bawah belanjawan terhad. Jejak mengekalkan konteks masuk dan memulakan span gateway. Makluman membezakan kegagalan gateway daripada kegagalan hulu supaya pengendali tidak mengundur balik (rollback) gateway yang sihat untuk insiden perkhidmatan.

Alternatif utama ialah gateway universal tunggal berbanding gateway atau BFF mengikut klien atau domain. Satu kumpulan memudahkan kemasukan dan tadbir urus luaran, tetapi membesarkan radius letupan (blast radius) dan menggalakkan pengumpulan dasar. Pelbagai gateway mengasingkan pasukan dan gelagat khusus klien, tetapi menduplikasi operasi dan memerlukan kawalan global yang konsisten. Mulakan dengan satu gateway platform yang nipis serta perkhidmatan milik domain; tambahkan BFF hanya apabila klien benar-benar memerlukan agregasi atau kontrak yang berbeza. Service mesh melengkapkan reka bentuk ini untuk trafik timur-barat dan tidak menggantikan gateway utara-selatan awam.

Pengesahan termasuk ujian sifat jadual laluan untuk pemadanan deterministik, ujian keserasian snapshot, ujian beban pada kapasiti biasa dan satu-rantau-gagal, perbandingan bayang bagi semakan lama dan baharu, dan suntikan kerosakan untuk kehilangan ketersambungan satah kawalan, kunci basi, hulu yang perlahan, tekanan balik telemetri, kehilangan zon dan pemindahan rantau. Reka bentuk lengkap apabila setiap kegagalan mempunyai keadaan yang boleh diperhatikan dan tindak balas yang terhad.

Contoh Jawapan Berkualiti Tinggi

“Saya akan menjalankan kumpulan gateway tanpa keadaan merentasi tiga rantau aktif dan beberapa zon. Penghalaan global menghantar klien ke rantau berdekatan yang sihat; pengimbang beban serantau menyebarkan trafik ke atas tika gateway. Laluan hangat menamatkan TLS, mengesahkan identiti yang ditandatangani daripada cache kunci setempat, memadankan laluan yang dikompil, menggunakan kebenaran kasar dan kuota serantau, memilih titik akhir rantau sama yang sihat, dan memajukan dengan masa tamat terhad. Kebenaran domain kekal dalam perkhidmatan.

Laluan permintaan tidak pernah membaca pangkalan data konfigurasi. Satah kawalan yang berasingan mengesahkan perubahan laluan dan dasar yang diingini, menolak pemadanan yang samar-samar dan percubaan semula yang tidak selamat, mengompil snapshot bertandatangan yang tidak boleh diubah, dan melancarkannya melalui peringkat bayang, kohort, zon dan rantau. Setiap tika membina snapshot baharu di luar bebenang dan menukarnya secara atomik. Ia mengekalkan versi baik terakhir yang diketahui, jadi gangguan satah kawalan menghentikan perubahan tanpa menghentikan trafik. Kelengahan versi dan undur balik automatik menjadikan pelancaran separa kelihatan dan boleh diterbalikkan.

Pada 500,000 permintaan sesaat, 2 KiB data masuk adalah kira-kira 0.95 GiB/s sebelum overhed. Saya akan menanda aras rantaian dasar penuh untuk mendapatkan daya pemprosesan setiap tika yang selamat Q dan menggunakan ceil(500,000 / Q) serta ruang tambahan kegagalan. Memandangkan kehilangan satu daripada tiga rantau yang sama rata meningkatkan beban setiap yang terselamat sebanyak 50%, kapasiti serantau dan ujian beban merangkumi keadaan tersebut.

Saya akan mengehadkan sambungan, keserentakan, badan permintaan, giliran dan percubaan semula. Percubaan semula idempoten menggunakan belanjawan kecil; penulisan bukan idempoten memerlukan kunci keidempotenan atau tiada percubaan semula automatik. Kuota global diperuntukkan sebagai pajakan serantau pendek, menjadikan pertukaran pemisahan rangkaian jelas. Akhir sekali, saya akan memantau kependaman tambahan gateway, hasil laluan, kesihatan hulu, gelagat percubaan semula dan litar, versi konfigurasi aktif, dan prob serantau sintetik, kemudian menguji kehilangan satah kawalan, konfigurasi yang tidak elok, kehilangan zon dan failover serantau sebelum pelancaran.”

Kesilapan Biasa

  • Membaca laluan atau dasar daripada pangkalan data pada setiap permintaan → kependaman dan ketersediaan bergantung pada satah kawalan → berkhidmat daripada snapshot setempat yang disahkan dan kekalkan keadaan baik terakhir yang diketahui.
  • Meletakkan logik perniagaan dalam pemalam gateway → keluaran mendapat radius letupan global dan pemilikan domain menjadi tidak jelas → pastikan gateway kekal deklaratif dan alihkan keputusan perniagaan kepada perkhidmatan atau BFF yang wajar.
  • Menerbitkan perubahan boleh ubah secara individu → laluan, dasar dan sijil boleh diaktifkan dalam gabungan yang tidak serasi → kompil satu snapshot berversi dan tukarnya secara atomik.
  • Menganggap berbilang tika sebagai daya tahan yang mencukupi → satu semakan yang tidak elok boleh memecahkan setiap tika sekaligus → canary mengikut kohort, zon dan rantau, dengan pagar kesihatan automatik dan undur balik.
  • Menentukan saiz untuk waktu puncak biasa sahaja → rantau yang masih hidup mengalami beban lampau semasa pemindahan → kira dan uji peningkatan 50% setiap rantau selepas satu daripada tiga rantau yang sama rata gagal.
  • Mencuba semula semua kegagalan → percubaan semula menguatkan beban lampau dan boleh menduplikasi penulisan → cuba semula hanya kes idempoten yang terhad dan perlukan keidempotenan aplikasi untuk penulisan.
  • Menggunakan panggilan penyedia identiti pada setiap permintaan → pengesahan mewarisi kebergantungan jauh yang segerak → sahkan token yang ditandatangani secara setempat dan segarkan kunci secara tidak segerak dengan had kebasian terhad.
  • Memberi setiap rantau kuota global penuh → penyewa boleh mendarabkan elaunnya dengan bilangan rantau → peruntukkan pajakan serantau atau nyatakan had kemasukan berlebihan yang diterima.
  • Memindahkan trafik gateway tanpa menyemak bahagian belakang → rantau yang dipilih mungkin tidak mempunyai perkhidmatan atau kapasiti data yang sihat → jadikan prob serantau hujung ke hujung dan kesediaan bahagian belakang sebahagian daripada failover.
  • Mencatat log setiap muatan yang berjaya → telemetri menggunakan sumber laluan hangat dan mungkin membocorkan data sensitif → keluarkan metadata berstruktur secara tidak segerak, sampel kejayaan dan sunting mengikut dasar.

Soalan Susulan dan Maklum Balas

Susulan 1: Bagaimanakah anda mengundur balik konfigurasi laluan yang tidak elok tanpa menjatuhkan permintaan?

Kekalkan snapshot yang tidak boleh diubah dan sekurang-kurangnya satu versi yang disahkan sebelum ini. Gateway membina calon jauh dari bebenang permintaan, mengesahkan checksum dan rujukannya, serta menukar penunjuk aktif secara atomik. Permintaan sedia ada mengekalkan snapshot lama mereka sehingga selesai. Jika kesihatan kohort merosot, satah kawalan menandakan semakan gagal dan gateway bertukar kembali ke penunjuk sebelumnya. Undur balik mengubah keadaan konfigurasi; ia tidak memulakan semula keseluruhan kumpulan.

Susulan 2: Apakah yang berlaku jika satah kawalan tidak tersedia selama satu jam?

Trafik diteruskan pada snapshot baik terakhir yang diketahui dan dikekalkan. Gateway mendedahkan usia dan versi snapshot tersebut serta berhenti menerima perubahan yang belum disahkan. Penggiliran sijil dan kunci memerlukan kesahan bertindih yang cukup lama untuk keadaan ini. Pembatalan kecemasan menggunakan jangka hayat token yang pendek atau senarai nafi padat yang ditandatangani secara berasingan. Pengendali kehilangan keupayaan perubahan semasa gangguan, jadi amaran dicetuskan pada kelewatan pengedaran jauh sebelum bahan sedia ada tamat tempoh.

Susulan 3: Bagaimanakah anda mengelak daripada menduplikasi POST apabila gateway mencuba semula?

Gateway tidak mencuba semula permintaan bukan idempoten secara automatik semata-mata kerana sambungan hulu gagal; bahagian belakang mungkin telah melakukan komit sebelum respons hilang. Untuk operasi yang mesti boleh dicuba semula, klien membekalkan kunci keidempotenan, dan perkhidmatan pemilik menyimpan serta mengembalikan hasil pertama. Gateway boleh mencuba semula hanya dalam tarikh akhir permintaan dan belanjawan percubaan semula yang kecil. Ralat sambungan sebelum sebarang bait diterima boleh dikendalikan secara berasingan jika pengangkutan membuktikan keadaan tersebut.

Susulan 4: Adakah anda akan memilih DNS global atau anycast untuk penghalaan serantau?

Mana-mana satu boleh memenuhi seni bina. DNS yang peka kesihatan adalah lebih mudah dari segi operasi tetapi cache menjadikan pemindahan berlaku secara beransur-ansur. Anycast boleh mengemudi trafik dengan lebih pantas, tetapi ia memerlukan operasi rangkaian yang lebih kukuh dan masih memerlukan isyarat kesihatan aplikasi. Saya akan memilih mekanisme yang platform telah gunakan, mengukur masa failover dan memastikan klien bertolak ansur terhadap perubahan titik akhir. Reka bentuk gateway serantau tidak bergantung pada anggapan bahawa perubahan DNS berlaku serta-merta.

Susulan 5: Bilakah anda patut membahagikan satu gateway kepada beberapa gateway?

Bahagikan apabila pengasingan atau kontrak benar-benar berbeza: trafik terkawal, domain yang dikendalikan secara bebas, atau klien mudah alih dan web yang memerlukan agregasi yang berbeza secara material. Jangan bahagikan hanya untuk mencerminkan setiap mikronya (microservice), kerana klien kemudiannya memulihkan topologi dalaman dan operasi berganda. Skema dasar yang dikongsi, peraturan identiti, telemetri dan keselamatan keluaran boleh kekal sebagai keupayaan platform walaupun kumpulan masa jalanan diasingkan.

Sumber awam

Soalan berkaitan

Alat temu duga berkaitan

Gunakan Jawab untuk jawapan reka bentuk sistem

Jelaskan keperluan terlebih dahulu, kemudian teruskan dengan skala, seni bina, pilihan komponen dan pertukaran (trade-off).

Lihat alat