Rumah >masalah biasa >Penyelesaian pantas 10 minit |

Penyelesaian pantas 10 minit |

Java后端技术全栈
Java后端技术全栈ke hadapan
2023-08-23 15:03:02779semak imbas


Artikel ini ialah ringkasan teknikal pembelajaran seni bina tapak web teragih berskala besar. Penerangan ringkas tentang seni bina tapak web yang diedarkan berprestasi tinggi, sangat tersedia, berskala dan boleh dikembangkan serta rujukan seni bina diberikan. Sebahagian daripada artikel sedang membaca nota, dan sebahagiannya ialah ringkasan pengalaman peribadi, yang mempunyai nilai rujukan yang baik untuk seni bina tapak web yang diedarkan secara besar-besaran.

Teknologi seni bina laman web teragih berskala besar

1.

    Data besar-besaran, Perkhidmatan ini sangat tersedia
  • Persekitaran keselamatan adalah lemah dan terdedah kepada serangan rangkaian
  • Pelbagai fungsi, pembangunan lebih pantas, keluaran kerap
  • Membangunkan secara beransur-ansur daripada kecil
  • centered
  • Perkhidmatan Percuma, pengalaman berbayar
  • 2. Matlamat seni bina laman web yang besar
  • Prestasi tinggi: Menyediakan pengalaman akses pantas.

Ketersediaan tinggi: Perkhidmatan tapak web sentiasa boleh diakses seperti biasa.

Skala: meningkat/mengurang, menambah/mengurangkan kuasa pemprosesan melalui perkakasan.
  • Keselamatan: Menyediakan akses selamat tapak web dan penyulitan data, storan selamat dan strategi lain.
  • Kebolehlanjutan: Tambah/alih keluar fungsi/modul baharu dengan mudah dengan menambah/mengalih keluarnya.
  • Ketangkasan: atas permintaan, tindak balas pantas;
  • 3 Model seni bina laman web yang besar
boleh dibahagikan kepada
Penyelesaian pantas 10 minit |
secara amnya

. lapisan perkhidmatan, lapisan data, lapisan pengurusan dan lapisan analisis;

Penyelesaian pantas 10 minit |
segmentasi: secara amnya dibahagikan mengikut ciri perniagaan/modul/fungsi, contohnya, lapisan aplikasi dibahagikan kepada laman utama dan pusat pengguna.
  • Diedarkan: Sebarkan aplikasi secara berasingan (seperti berbilang mesin fizikal) dan bekerjasama melalui panggilan jauh.
  • Kluster: Aplikasi/modul/fungsi digunakan dalam berbilang salinan (seperti berbilang mesin fizikal) untuk menyediakan akses luaran melalui pengimbangan beban.
  • Caching: Letakkan data paling hampir dengan aplikasi atau pengguna untuk mempercepatkan akses.
  • Asynchronous: Asynchronousize operasi segerak. Pelanggan menghantar permintaan tanpa menunggu pelayan bertindak balas Selepas pelayan menyelesaikan pemprosesan, ia menggunakan pemberitahuan atau tinjauan pendapat untuk memaklumkan peminta. Secara amnya merujuk kepada: mod permintaan-tindak balas-pemberitahuan.
  • Lebihan: Tingkatkan replika untuk meningkatkan ketersediaan, keselamatan dan prestasi.
  • Keselamatan: Mempunyai penyelesaian yang berkesan untuk masalah yang diketahui, dan wujudkan mekanisme penemuan dan pertahanan untuk masalah yang tidak diketahui/berpotensi.
  • Automasi: Gunakan mesin untuk menyelesaikan tugasan berulang yang tidak memerlukan campur tangan manusia melalui alatan.
  • Ketangkasan: Secara aktif menerima perubahan dalam keperluan dan bertindak balas dengan cepat kepada keperluan pembangunan perniagaan.
  • 4. Seni bina berprestasi tinggi

    adalah berpusatkan pengguna dan menyediakan pengalaman akses web yang pantas. Parameter utama termasuk masa tindak balas yang singkat, keupayaan pemprosesan serentak yang besar, prestasi tinggi dan parameter prestasi yang stabil.

    Boleh dibahagikan kepada pengoptimuman bahagian hadapan, pengoptimuman lapisan aplikasi, pengoptimuman lapisan kod dan pengoptimuman lapisan storan.

    • Pengoptimuman bahagian hadapan: bahagian sebelum logik perniagaan tapak web;
    • Pengoptimuman penyemak imbas: kurangkan bilangan permintaan HTTP, gunakan cache penyemak imbas, dayakan pemampatan, kedudukan CSS JS, JS tak segerak, kurangkan penghantaran kuki; pecutan, proksi terbalik;
    • Pengoptimuman lapisan aplikasi: pelayan yang mengendalikan perniagaan tapak web. Gunakan cache, asynchronous, cluster
    • Pengoptimuman kod: seni bina yang munasabah, multi-threading, penggunaan semula sumber (kumpulan objek, kumpulan benang, dll.), struktur data yang baik, penalaan JVM, singleton, Cache, dll.;
    • Pengoptimuman storan: cache, pemacu keadaan pepejal, penghantaran gentian optik, bacaan dan penulisan yang dioptimumkan, redundansi cakera, storan teragih (HDFS), NoSQL, dsb.

    5. Seni bina ketersediaan tinggi

    Tapak web yang besar harus boleh diakses pada setiap masa dan menyediakan perkhidmatan luaran biasa. Kerana kerumitan, pengedaran, pelayan murah, pangkalan data sumber terbuka, sistem pengendalian dan ciri-ciri lain tapak web yang besar, adalah sukar untuk memastikan ketersediaan tinggi, yang bermaksud kegagalan laman web tidak dapat dielakkan.

    Cara meningkatkan kebolehgunaan adalah isu yang perlu diselesaikan dengan segera. Pertama sekali, kita perlu mempertimbangkannya dari peringkat seni bina, dan mempertimbangkan ketersediaan semasa merancang. Dalam industri, beberapa sembilan biasanya digunakan untuk mewakili penunjuk ketersediaan, seperti empat sembilan (99.99), dan masa ketidaktersediaan yang dibenarkan dalam setahun ialah 53 minit.

    Strategi berbeza digunakan pada tahap yang berbeza sandaran berlebihan dan failover biasanya digunakan untuk menyelesaikan masalah ketersediaan tinggi.

    • Lapisan aplikasi: Secara umumnya direka bentuk tanpa kewarganegaraan, ia tidak memberi kesan pada pelayan mana yang digunakan untuk memproses setiap permintaan. Secara amnya, teknologi pengimbangan beban (yang perlu menyelesaikan masalah penyegerakan Sesi) digunakan untuk mencapai ketersediaan yang tinggi.
    • Lapisan perkhidmatan: pengimbangan beban, pengurusan hierarki, kegagalan pantas (tetapan tamat masa), panggilan tak segerak, kemerosotan perkhidmatan, reka bentuk idempoten, dsb.
    • Lapisan data: sandaran berlebihan (sejuk, sandaran panas [segerak, tak segerak], sandaran hangat), failover (pengesahan, pemindahan, pemulihan). Asas teori yang terkenal untuk ketersediaan data yang tinggi ialah teori CAP (ketekalan, ketersediaan, ketekalan data [konsistensi kuat, konsistensi pengguna, konsistensi akhirnya])

    6 Seni bina boleh skala

    Skalabiliti merujuk kepada Tanpa mengubah skalabilitas. reka bentuk seni bina asal, keupayaan pemprosesan sistem boleh ditingkatkan atau dikurangkan dengan menambah/mengurangkan perkakasan (pelayan).

    • Lapisan aplikasi: Pisahkan aplikasi secara menegak atau mendatar. Kemudian muatkan baki terhadap satu fungsi (DNS, HTTP [proksi terbalik], IP, lapisan pautan).
    • Lapisan perkhidmatan: serupa dengan lapisan aplikasi;
    • Lapisan data: sub-pangkalan data, sub-jadual, NoSQL, dll.; algoritma yang biasa digunakan Hash, Hash yang konsisten.

    7. Seni bina boleh skala

    boleh menambah/mengalih keluar modul fungsi dengan mudah dan memberikan kebolehskalaan yang baik pada tahap kod/modul.

    • Modularisasi dan komponenisasi: kohesi tinggi, gandingan rendah, kebolehgunaan semula dan kebolehskalaan yang lebih baik.
    • Antara muka stabil: Tentukan antara muka yang stabil Walaupun antara muka kekal tidak berubah, struktur dalaman boleh berubah "sesuka hati".
    • Corak reka bentuk: Gunakan idea dan prinsip berorientasikan objek, gunakan corak reka bentuk untuk mereka bentuk pada tahap kod.
    • Baris Gilir Mesej: Sistem modular yang berinteraksi melalui baris gilir mesej untuk memisahkan kebergantungan antara modul.
    • Perkhidmatan edaran: Modul awam berorientasikan perkhidmatan untuk menyediakan penggunaan oleh sistem lain, meningkatkan kebolehgunaan semula dan kebolehskalaan.

    8. Seni bina keselamatan

    Mempunyai penyelesaian yang berkesan untuk masalah yang diketahui dan mewujudkan mekanisme penemuan dan pertahanan untuk masalah yang tidak diketahui/berpotensi. Untuk isu keselamatan, kita mesti terlebih dahulu meningkatkan kesedaran keselamatan dan mewujudkan mekanisme keselamatan yang berkesan untuk memastikannya dari peringkat dasar dan peringkat organisasi Contohnya, kata laluan pelayan tidak boleh dibocorkan, kata laluan dikemas kini setiap bulan dan tidak boleh diulang dalam masa tiga kali seminggu imbasan keselamatan, dsb. Memperkukuh pembinaan sistem keselamatan secara berinstitusi. Pada masa yang sama, perhatian perlu diberikan kepada semua aspek yang berkaitan dengan keselamatan. Isu keselamatan tidak boleh diabaikan, termasuk keselamatan infrastruktur, keselamatan sistem aplikasi, kerahsiaan dan keselamatan data, dsb.

    • Keselamatan infrastruktur: perolehan perkakasan, sistem pengendalian dan keselamatan persekitaran rangkaian. Secara amnya, gunakan saluran rasmi untuk membeli produk berkualiti tinggi, memilih sistem pengendalian yang selamat, menambal kelemahan tepat pada masanya dan memasang perisian anti-virus dan tembok api. Lindungi daripada virus dan pintu belakang. Tetapkan dasar tembok api, wujudkan sistem pertahanan DDOS, gunakan sistem pengesanan serangan dan lakukan pengasingan subnet.
    • Keselamatan sistem aplikasi: Semasa pembangunan program, gunakan kaedah yang betul untuk menyelesaikan masalah biasa yang diketahui pada peringkat kod. Cegah serangan skrip silang tapak (XSS), serangan suntikan, pemalsuan permintaan merentas tapak (CSRF), mesej ralat, ulasan HTML, muat naik fail, traversal laluan, dsb. Anda juga boleh menggunakan tembok api aplikasi web (seperti ModSecurity) untuk melakukan pengimbasan kerentanan keselamatan dan langkah lain untuk mengukuhkan keselamatan peringkat aplikasi.
    • Kerahsiaan dan keselamatan data: keselamatan penyimpanan (disimpan dalam peralatan yang boleh dipercayai, masa nyata, sandaran berjadual), keselamatan pemeliharaan (pemeliharaan maklumat penting yang disulitkan, pemilihan kakitangan yang sesuai untuk pemeliharaan dan pengesanan yang kompleks, dsb.), keselamatan penghantaran (pencegahan kecurian data dan gangguan Data);

    Algoritma penyulitan dan penyahsulitan yang biasa digunakan (penyulitan cincang tunggal [MD5, SHA], penyulitan simetri [DES, 3DES, RC]), penyulitan asimetri [RSA], dsb.

    9 Ketangkasan

    Reka bentuk seni bina dan pengurusan operasi dan penyelenggaraan tapak web mesti menyesuaikan diri dengan perubahan dan menyediakan kebolehskalaan dan kebolehskalaan yang tinggi. Menghadapi perkembangan perniagaan yang pesat, peningkatan mendadak dalam akses trafik tinggi dan keperluan lain dengan mudah.

    Selain elemen seni bina yang diperkenalkan di atas, idea pengurusan tangkas dan pembangunan tangkas juga perlu diperkenalkan. Satukan perniagaan, produk, teknologi, operasi dan penyelenggaraan, menyesuaikan diri dengan keperluan dan bertindak balas dengan cepat.

    10 Contoh seni bina berskala besar

    Penyelesaian pantas 10 minit |

    Di atas menggunakan seni bina logik tujuh lapisan, lapisan pertama adalah lapisan pelanggan, lapisan kedua adalah lapisan pengoptimuman bahagian hadapan, lapisan ketiga. lapisan ialah lapisan aplikasi, lapisan keempat ialah lapisan perkhidmatan, dan lapisan kelima ialah lapisan pertama ialah lapisan storan data, lapisan keenam ialah lapisan storan data yang besar, dan lapisan ketujuh ialah lapisan pemprosesan data yang besar.

    • Lapisan pelanggan: menyokong penyemak imbas PC dan APP mudah alih. Perbezaannya ialah APP mudah alih boleh diakses terus melalui IP dan pelayan proksi terbalik. .
    • Lapisan perkhidmatan: Menyediakan perkhidmatan awam, seperti perkhidmatan pengguna, perkhidmatan pesanan, perkhidmatan pembayaran, dll. kelompok; dan Cache yang diedarkan; luar talian melalui analisis Data Mapreduce atau analisis data masa nyata Storm, dan data yang diproses disimpan dalam pangkalan data hubungan. (Dalam penggunaan sebenar, data luar talian dan data masa nyata akan dikelaskan dan diproses mengikut keperluan perniagaan dan disimpan dalam pangkalan data yang berbeza untuk digunakan oleh lapisan aplikasi atau lapisan perkhidmatan).
    • Evolusi seni bina sistem tapak web e-dagang berskala besar
    • Seni bina sistem laman web berskala besar yang matang (seperti Taobao, Tmall, Tencent, dll.) tidak direka bentuk dengan prestasi tinggi yang lengkap dari awal , ketersediaan tinggi, berskala tinggi dan ciri-ciri lain Ia telah berkembang secara beransur-ansur dan bertambah baik dengan peningkatan dalam bilangan pengguna dan pengembangan fungsi perniagaan Dalam proses ini, model pembangunan, seni bina teknikal, dan idea reka bentuk juga telah mengalami perubahan yang besar Malah kakitangan teknikal telah berkembang daripada beberapa orang kepada jabatan atau bahkan barisan produk.
    • Jadi seni bina sistem matang dipertingkatkan secara beransur-ansur dengan pengembangan perniagaan, dan ia tidak dicapai dalam sekelip mata sistem dengan ciri perniagaan yang berbeza akan mempunyai fokus mereka sendiri, seperti Taobao, yang perlu menyelesaikan pencarian, pesanan dan pemprosesan; maklumat produk besar-besaran, contohnya, Tencent perlu mengendalikan penghantaran mesej masa nyata untuk ratusan juta pengguna.
    • Kesemuanya mempunyai ciri perniagaan tersendiri dan seni bina sistem juga berbeza. Walaupun begitu, kami juga boleh mencari teknologi biasa daripada latar belakang laman web yang berbeza ini dan kaedah ini digunakan secara meluas dalam seni bina sistem tapak web berskala besar. Mari kita fahami teknologi dan kaedah ini dengan memperkenalkan proses evolusi sistem tapak web berskala besar. bermakna.
    • Seni bina tapak web awal

    Seni bina awal, aplikasi, pangkalan data dan fail semuanya digunakan pada pelayan, seperti yang ditunjukkan dalam gambar:
    Penyelesaian pantas 10 minit |

    2. Pemisahan aplikasi, data dan fail

    Dengan pengembangan perniagaan, satu pelayan tidak lagi dapat memenuhi keperluan prestasi, jadi aplikasi, pangkalan data dan fail digunakan pada pelayan yang berasingan, dan Konfigurasikan perkakasan yang berbeza mengikut tujuan pelayan untuk mencapai hasil prestasi terbaik.

    Penyelesaian pantas 10 minit |

    3 caching terutamanya disebabkan oleh kewujudan data panas Kebanyakan lawatan tapak web mengikut prinsip 28 (iaitu, 80% permintaan akses berakhir pada 20% daripada data), jadi kami boleh menyimpan data panas untuk mengurangkan akses kepada data ini. laluan untuk meningkatkan pengalaman pengguna.

    Cara biasa untuk melaksanakan cache ialah cache setempat dan cache teragih. Sudah tentu, terdapat juga CDN, proksi terbalik, dan lain-lain, yang akan dibincangkan kemudian. Cache tempatan, seperti namanya, menyimpan data secara setempat pada pelayan aplikasi Ia boleh disimpan dalam memori atau dalam fail OSCache ialah komponen cache tempatan yang biasa digunakan. Ciri cache tempatan ialah ia pantas, tetapi kerana ruang tempatan terhad, jumlah data cache juga terhad. Ciri-ciri cache yang diedarkan ialah ia boleh menyimpan sejumlah besar data dan sangat mudah untuk dikembangkan. Ia sering digunakan dalam laman web portal dan tidak secepat cache yang diedarkan yang biasa digunakan ialah Memcached dan Redis.
    Penyelesaian pantas 10 minit |

    4. Gunakan kluster untuk meningkatkan prestasi pelayan aplikasi

    Sebagai pintu masuk ke laman web, pelayan aplikasi akan menanggung sejumlah besar permintaan. Pelayan pengimbangan beban digunakan di hadapan pelayan aplikasi untuk menjadualkan permintaan pengguna dan mengedarkan permintaan kepada berbilang nod pelayan aplikasi mengikut dasar pengedaran.

    Perkakasan teknologi pengimbangan beban yang biasa digunakan termasuk F5, yang agak mahal, dan perisian termasuk LVS, Nginx dan HAProxy. LVS ialah pengimbangan beban empat lapisan, yang memilih pelayan dalaman berdasarkan alamat sasaran dan port Nginx dan HAProxy ialah pengimbangan beban tujuh lapisan, yang boleh memilih pelayan dalaman berdasarkan kandungan mesej Nginx dan HAProxy, dan prestasinya lebih tinggi Nginx dan HAProxy lebih boleh dikonfigurasikan, dan boleh digunakan untuk pemisahan dinamik dan statik (pilih pelayan sumber statik atau pelayan aplikasi berdasarkan ciri-ciri mesej permintaan).

    5. Pemisahan baca-tulis pangkalan data dan pemisahan pangkalan data dan jadual

    Dengan peningkatan dalam bilangan pengguna, pangkalan data telah menjadi halangan terbesar yang biasa digunakan untuk meningkatkan prestasi pangkalan data ialah pengasingan baca-tulis dan pangkalan data dan serpihan jadual Membaca dan menulis Seperti namanya, pemisahan adalah untuk membahagikan pangkalan data kepada pangkalan data bacaan dan pangkalan data penulisan, dan mencapai penyegerakan data melalui fungsi primer dan sekunder. Pemecahan pangkalan data dan pemecahan jadual dibahagikan kepada pemecahan mendatar dan pemecahan mendatar adalah untuk memisahkan jadual yang sangat besar dalam pangkalan data, seperti jadual pengguna. Pembahagian menegak adalah berdasarkan perniagaan yang berbeza Contohnya, jadual yang berkaitan dengan perniagaan pengguna dan perniagaan produk diletakkan dalam pangkalan data yang berbeza.

    Penyelesaian pantas 10 minit |

    6 Gunakan CDN dan proksi terbalik untuk meningkatkan prestasi tapak web

    Jika pelayan kami digunakan di bilik komputer di Chengdu, akses akan menjadi lebih pantas untuk pengguna di Sichuan, tetapi untuk pengguna di Beijing Ini adalah lebih perlahan. jadi masa penghantaran data adalah Agak panjang. Untuk situasi ini, CDN sering digunakan untuk menyelesaikan masalah tersebut. CDN menyimpan kandungan data ke bilik komputer pengendali Apabila pengguna mengakses data, mereka mula-mula mendapatkan data daripada pengendali terdekat, yang mengurangkan laluan akses rangkaian. Pengendali CDN yang lebih profesional termasuk Lanxun dan Wangsu.

    Proksi terbalik digunakan dalam bilik komputer tapak web Apabila permintaan pengguna tiba, ia mula-mula mengakses pelayan proksi terbalik mengembalikan data yang dicache kepada pengguna teruskan mengakses pelayan aplikasi untuk mendapatkannya , yang mengurangkan kos mendapatkan data. Proksi terbalik termasuk Squid dan Nginx.

    Penyelesaian pantas 10 minit |

    7. Gunakan sistem fail yang diedarkan

    Bilangan pengguna semakin meningkat setiap hari, jumlah perniagaan semakin besar dan lebih besar, dan lebih banyak fail dijana. lebih lama memenuhi permintaan Pada masa ini Ia memerlukan sokongan sistem fail yang diedarkan. Sistem fail teragih yang biasa digunakan termasuk GFS, HDFS dan TFS.

    Penyelesaian pantas 10 minit |

    8. Gunakan NoSQL dan enjin carian

    Untuk pertanyaan dan analisis data besar-besaran, kami menggunakan pangkalan data NoSQL serta enjin carian untuk mencapai prestasi yang lebih baik. Tidak semua data perlu diletakkan dalam data hubungan. NoSQL yang biasa digunakan termasuk MongoDB, HBase dan Redis, dan enjin carian termasuk Lucene, Solr dan Elasticsearch.

    Penyelesaian pantas 10 minit |

    9. berita, laman web, gambar dan perkhidmatan lain. Setiap aplikasi perniagaan bertanggungjawab untuk operasi perniagaan yang agak bebas. Perniagaan berkomunikasi melalui mesej atau berkongsi pangkalan data.

    Penyelesaian pantas 10 minit |10 menyokong elemen asas setiap aplikasi perniagaan. Kami mengekstrak perkhidmatan ini dan menggunakan rangka kerja perkhidmatan teragih untuk membina perkhidmatan teragih. Ali’s Dubbo ialah pilihan yang baik. .
    1. E-dagang Sebab kes

    Pada masa ini terdapat beberapa kategori utama tapak web berskala besar yang diedarkan:
    • Portal besar, seperti NetEase, Sina, dsb.;
    • Tapak web SNS, seperti Xiaonei, Kaixin.com, dsb.; Gome Online, Autohome, dll.
    • Portal berskala besar secara amnya ialah maklumat berita, yang boleh dioptimumkan menggunakan CDN, penstabilan, dsb. Kaixin.com dan tapak web lain lebih interaktif dan mungkin memperkenalkan lebih banyak NoSQL, caching teragih dan menggunakan rangka kerja komunikasi berprestasi tinggi, dll. Laman web e-dagang mempunyai ciri-ciri dua kategori di atas Sebagai contoh, butiran produk boleh menggunakan CDN dan mereka yang mempunyai interaktiviti tinggi perlu menggunakan NoSQL dan teknologi lain. Oleh itu, kami menggunakan laman web e-dagang sebagai kes untuk analisis.

    2

    Pengguna boleh berkomunikasi dengan perkhidmatan pelanggan dalam talian apabila membeli; disambungkan dengan laman web;

    Berharap dapat menyokong pembangunan perniagaan dalam masa 3~5 tahun

    • Dijangkakan bilangan pengguna akan mencapai 10 juta dalam masa 3~5 tahun
    • 1 secara berkala , Double 12, March 8th Men's Day dan aktiviti lain
    • Untuk fungsi lain, sila rujuk laman web seperti JD.com atau Gome Online.
    • Pelanggan adalah pelanggan mereka tidak akan memberitahu anda apa yang mereka mahukan secara khusus, mereka hanya akan memberitahu anda apa yang mereka mahukan. Nasib baik, laman web rujukan yang jelas disediakan. Oleh itu, langkah seterusnya ialah menjalankan sejumlah besar analisis, menggabungkan industri, dan laman web rujukan untuk menyediakan penyelesaian kepada pelanggan.
      Matriks Fungsi Keperluan
      Pendekatan tradisional kepada pengurusan keperluan menggunakan rajah kes guna atau rajah modul (senarai keperluan) untuk menerangkan keperluan. Melakukannya sering mengabaikan keperluan yang sangat penting (keperluan bukan fungsi), jadi adalah disyorkan agar anda menggunakan matriks fungsi keperluan untuk menerangkan keperluan. Matriks permintaan laman web e-dagang ini adalah seperti berikut:
    • 3. Struktur utama laman web
    • Laman web umum, pendekatan awal ialah tiga pelayan, dan satu untuk menggunakan satu untuk menggunakan pangkalan data, satu menggunakan sistem fail NFS.
      Ini adalah pendekatan yang agak tradisional dalam beberapa tahun kebelakangan ini saya telah melihat laman web dengan lebih daripada 100,000 ahli, portal reka bentuk pakaian menegak dan banyak gambar. Pelayan digunakan untuk menggunakan aplikasi, pangkalan data dan storan imej. Terdapat banyak isu prestasi. Seperti yang ditunjukkan di bawah:
    • Penyelesaian pantas 10 minit |

      Walau bagaimanapun, seni bina laman web arus perdana telah mengalami perubahan yang menggemparkan. Secara amnya, pendekatan kelompok digunakan untuk reka bentuk ketersediaan tinggi. Sekurang-kurangnya ia kelihatan seperti ini:

      Penyelesaian pantas 10 minit |

      • Gunakan kluster ke pelayan aplikasi berlebihan untuk mencapai ketersediaan tinggi (Peralatan pengimbangan beban boleh digunakan bersama-sama dengan aplikasi
      • ) induk mod Sandaran untuk mencapai sandaran data dan ketersediaan yang tinggi; of concurrency;
      • Anggaran puncak: 2~3 kali jumlah biasa;

      Kira kapasiti sistem berdasarkan jumlah concurrency (concurrency, bilangan transaksi) dan kapasiti storan.

      Mengikut keperluan pelanggan: bilangan pengguna akan mencapai 10 juta pengguna berdaftar dalam masa 3 hingga 5 tahun, dan bilangan pengguna serentak sesaat boleh dianggarkan:

      • UV harian ialah 2 juta (28 prinsip);
      • Klik untuk melihat 30 kali sehari; =4.8 jam akan ada 60 juta
        0.8=48 juta (28 prinsip);
      • Concurrency sesaat: 167,000/60=2780 (lebih kurang sama dengan
      • Dengan mengandaikan bahawa tempoh puncak adalah tiga kali ganda nilai normal, bilangan concurrency sesaat boleh mencapai 8340.
      • 1 milisaat = 1.3 lawatan;
      • Adakah anda menyesal tidak belajar matematik dengan baik? ! (Saya tidak tahu jika pengiraan di atas salah, haha~~) Anggaran pelayan: (ambil pelayan tomcat sebagai contoh) Menurut pelayan web, ia menyokong 300 pengiraan serentak sesaat. Biasanya 10 pelayan diperlukan (kira-kira sama dengan); [konfigurasi lalai tomcat ialah 150], 30 pelayan diperlukan semasa tempoh puncak anggaran kapasiti: prinsip 70/90 CPU sistem biasanya dikekalkan pada kira-kira 70%, dan mencapai 90% semasa tempoh puncak Ini tidak membazir sumber dan agak stabil. Memori dan IO adalah serupa. Anggaran di atas adalah untuk rujukan sahaja, kerana konfigurasi pelayan, kerumitan logik perniagaan, dll. semuanya mempunyai kesan. Di sini CPU, cakera keras, rangkaian, dsb. tidak lagi dinilai. 5. Analisis seni bina laman web Mengikut anggaran di atas, terdapat beberapa masalah:
      • Sebilangan besar pelayan perlu digunakan dalam tempoh puncak, 30 pelayan web mungkin digunakan. Lebih-lebih lagi, tiga puluh pelayan ini hanya digunakan semasa jualan kilat dan acara, yang merupakan pembaziran yang banyak.
      • Semua aplikasi digunakan pada pelayan yang sama, dan gandingan antara aplikasi adalah serius. Menghiris menegak dan mendatar diperlukan.
      • Terdapat kod berlebihan dalam sebilangan besar aplikasi

      Penyegerakan Sesi Pelayan menggunakan banyak memori dan lebar jalur rangkaian

      • Data perlu mengakses pangkalan data dengan kerap, dan tekanan pangkalan data adalah besar.
      • Laman web yang besar secara amnya perlu melakukan pengoptimuman seni bina berikut (pengoptimuman adalah sesuatu yang perlu dipertimbangkan semasa mereka bentuk seni bina. Ia biasanya diselesaikan dari peringkat seni bina/kod. Penalaan terutamanya pelarasan parameter mudah, seperti Penalaan JVM; jika penalaan melibatkan Sebilangan besar pengubahsuaian kod bukan penalaan, tetapi pemfaktoran semula):
        .
          Kluster pangkalan data ( Baca dan tulis pemisahan, sub-pangkalan data dan sub-jadual)
        • Serviceization
        • Baris gilir mesej
        • Teknologi lain
        • seni bina laman web
          6.1 Perpecahan perniagaan
        • Segmentasi menegak berdasarkan atribut perniagaan, dibahagikan kepada subsistem produk, subsistem membeli-belah, subsistem pembayaran, subsistem semakan, subsistem perkhidmatan pelanggan, subsistem antara muka (bersambung dengan sistem luaran seperti pembelian, penjualan, inventori, SMS, dll.). Berdasarkan definisi peringkat subsistem perniagaan, ia boleh dibahagikan kepada sistem teras dan sistem bukan teras. Sistem teras: subsistem produk, subsistem membeli-belah, subsistem pembayaran bukan teras: subsistem kajian, subsistem perkhidmatan pelanggan, subsistem antara muka;

        Peranan pembahagian perniagaan: peningkatan kepada subsistem boleh dikendalikan oleh pasukan dan jabatan khusus, dengan orang profesional melakukan perkara profesional untuk menyelesaikan isu gandingan dan kebolehskalaan antara modul; aplikasi hang dan semua aplikasi tidak tersedia.

        Peranan definisi tahap: digunakan untuk melindungi aplikasi utama semasa trafik pecah dan mencapai kemerosotan anggun melindungi aplikasi utama daripada terjejas.

        Gambar rajah seni bina selepas berpecah:

        • Pelan penggunaan rujukan 2
        , setiap aplikasi ditunjukkan dan bukan sistem di atas

        dikerahkan dalam gabungan

        6.2 Pengerahan kluster aplikasi (teredar, berkelompok, pengimbangan beban)

        • Pengedaran teragih: gunakan aplikasi selepas pemisahan perniagaan secara berasingan, dan aplikasi terus berkomunikasi dari jauh melalui RPC
          .Ketersediaan tinggi
        • ; keperluan untuk tapak web e-dagang. Setiap aplikasi mesti menggunakan sekurang-kurangnya dua pelayan untuk penempatan kluster
        • Pengimbangan beban: Ia adalah perlu untuk sistem ketersediaan tinggi. dalam Pengimbangan beban mencapai ketersediaan tinggi, dan pangkalan data hubungan mencapai ketersediaan tinggi melalui kaedah aktif dan sandaran.

        Gambar rajah seni bina selepas penggunaan kluster:

        Penyelesaian pantas 10 minit |

        6.3 Cache berbilang peringkat

        mengikut

        dan Cache yang diedarkan secara amnya boleh dibahagikan kepada dua jenis cache: secara amnya cache kepada dua jenis cache. Kes ini menggunakan kaedah cache peringkat kedua untuk mereka bentuk cache. Cache peringkat pertama ialah cache tempatan, dan cache peringkat kedua ialah cache yang diedarkan. (Terdapat juga caching halaman, caching serpihan, dll., yang merupakan bahagian yang lebih halus) Cache peringkat pertama, kamus data cache dan data hotspot yang biasa digunakan dan maklumat lain yang pada asasnya tidak berubah/berubah secara kerap, cache peringkat kedua menyimpan semua cache yang diperlukan. Apabila cache peringkat pertama tamat tempoh atau tidak tersedia, data dalam cache peringkat kedua diakses. Jika tiada cache peringkat kedua, pangkalan data diakses. Nisbah cache biasanya 1:4, dan anda boleh mempertimbangkan untuk menggunakan cache. (Secara teorinya 1:2 sudah memadai). Penyelesaian pantas 10 minit |

          Strategi tamat tempoh cache berikut boleh digunakan mengikut ciri perniagaan:
        • Cache tamat tempoh automatik
        • ;
        6.4 Log Masuk Tunggal (Diedarkan Sesi)

        Sistem dibahagikan kepada beberapa subsistem Selepas penggunaan bebas, masalah pengurusan sesi pasti akan dihadapi. Secara amnya, kaedah Penyegerakan Sesi, Kuki dan Sesi teragih boleh digunakan. Tapak web e-dagang biasanya dilaksanakan menggunakan Sesi yang diedarkan. Tambahan pula, satu log masuk tunggal yang lengkap atau sistem pengurusan akaun boleh diwujudkan berdasarkan sesi yang diedarkan.

        Penyelesaian pantas 10 minit |

        Penerangan Proses
        • Apabila pengguna log masuk buat kali pertama, tulis maklumat sesi (ID pengguna dan maklumat pengguna), seperti menggunakan ID pengguna sebagai kunci, ke dalam Sesi yang diedarkan
        • Apabila pengguna log masuk semula , dapatkan Sesi yang diedarkan. Adakah terdapat sebarang maklumat Sesi, jika tidak, pergi ke halaman log masuk
        • secara amnya dilaksanakan menggunakan perisian tengah Cache, jadi ia mempunyai fungsi kegigihan, yang memudahkan pemuatan maklumat sesi daripada storan berterusan selepas Sesi yang diedarkan tidak berfungsi ;
        • Apabila menyimpan sesi, anda boleh menetapkan masa pengekalan sesi, seperti 15 minit, dan ia akan tamat masa secara automatik selepas ia melebihi
        • Digabungkan dengan perisian tengah Cache, Sesi yang diedarkan yang dilaksanakan boleh mensimulasikan sesi Sesi dengan baik.

        6.5 kluster pangkalan data (pemisahan baca-tulis, sub-pangkalan data dan sub-jadual)Tapak web yang besar perlu menyimpan sejumlah besar data untuk mencapai storan data yang besar, ketersediaan tinggi dan prestasi tinggi, berlebihan reka bentuk sistem secara amnya diterima pakai. Secara amnya, terdapat dua cara untuk memisahkan bacaan dan penulisan serta sub-pangkalan data dan jadual. Pemisahan baca dan tulis: Secara amnya, untuk menyelesaikan senario di mana nisbah baca jauh lebih besar daripada nisbah tulis, satu utama dan satu siap sedia, satu siap sedia utama dan berbilang, atau berbilang siap sedia utama dan berbilang boleh digunakan. Kes ini berdasarkan pemisahan perniagaan, digabungkan dengan pemisahan pangkalan data, pemisahan jadual dan pemisahan baca-tulis. Seperti yang ditunjukkan di bawah:

        Penyelesaian pantas 10 minit |

          Selepas pemisahan perniagaan: setiap subsistem memerlukan perpustakaan yang berasingan
        • Jika perpustakaan berasingan terlalu besar, ia boleh dibahagikan kepada ciri-ciri perniagaan semula mengikut ciri-ciri perniagaan; sebagai perpustakaan klasifikasi produk, perpustakaan produk
        • Selepas pangkalan data dibahagikan, jika terdapat sejumlah besar data dalam jadual, jadual akan dibahagikan mengikut Id, masa, dll .; (Penggunaan lanjutan adalah Hash yang konsisten)
        • Asingkan membaca dan menulis berdasarkan sub-pangkalan data dan jadual
        • Perisian tengah yang berkaitan boleh merujuk kepada Cobar (Alibaba, kini tidak lagi diselenggara), TDDL (Alibaba) , Atlas (Qihoo 360) dan MyCat. Masalah dengan jujukan, SERTAI dan urus niaga selepas pangkalan data dan jadual sharding akan diperkenalkan dalam perkongsian tema pangkalan data sharding dan jadual.

        6.6 ServitizationEkstrak fungsi/modul biasa kepada berbilang subsistem dan gunakannya sebagai perkhidmatan awam. Sebagai contoh, subsistem keahlian dalam kes ini boleh diekstrak sebagai perkhidmatan awam.

        Penyelesaian pantas 10 minit |

        6.7 Barisan Mesej

        Baris gilir mesej boleh menyelesaikan gandingan antara subsistem/modul dan mencapai sistem tak segerak, tersedia, berprestasi tinggi. Ia adalah konfigurasi standard sistem teragih. Dalam kes ini, baris gilir mesej digunakan terutamanya dalam pautan beli-belah dan penghantaran.

        • Selepas pengguna membuat pesanan, ia ditulis ke baris gilir mesej dan kemudian dikembalikan terus kepada pelanggan
        • Subsistem inventori: membaca maklumat baris gilir mesej dan melengkapkan pengurangan inventori
        • ; membaca maklumat baris gilir mesej, untuk diedarkan; senario perniagaan. Adalah disyorkan untuk belajar Arnab MQ.
        6.8 Seni bina (teknologi) lain Penyelesaian pantas 10 minit |

        Selain pemisahan perniagaan, kelompok aplikasi, caching berbilang peringkat, log masuk tunggal, kelompok pangkalan data, penservitian dan baris gilir mesej yang diperkenalkan di atas. Terdapat juga CDN, proksi terbalik, sistem fail teragih, pemprosesan data besar dan sistem lain. Saya tidak akan memperkenalkannya secara terperinci di sini Anda boleh bertanya kepada Du Niang/Google Jika anda mempunyai peluang, anda juga boleh berkongsinya dengan semua orang.

        Architecture Summary

        Seni bina laman web berskala besar terus meningkat berdasarkan keperluan perniagaan. laman web berskala besar biasa Saya berharap beberapa teknologi dan kaedah yang terlibat akan memberi inspirasi kepada anda.

    Atas ialah kandungan terperinci Penyelesaian pantas 10 minit |. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:Java后端技术全栈. Jika ada pelanggaran, sila hubungi admin@php.cn Padam