国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah Java JavaSoalan temu bual 5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!

5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!

Aug 17, 2023 pm 04:04 PM
dubbo

Hari ini, saya membawakan anda artikel tentang interaksi Dubbo IO. .

Beberapa soalan menarik


Dubbo ialah rangka kerja RPC yang sangat baik dengan model benang yang rumit Dalam artikel ini, penulis menganalisis keseluruhan proses IO Dubbo daripada pengetahuan cetek saya sendiri. Sebelum kita mula, mari kita lihat dahulu soalan berikut:

Selepas kaedah perniagaan dilaksanakan, adakah paket data dihantar?

  • Apakah perbezaan dalam model benang antara netty3 dan netty4?
  • Paket data mencapai penimbal soket sistem pengendalian, apa yang berlaku?
  • Log yang dijana oleh Penyedia mengambil masa yang sangat singkat, tetapi pihak Pengguna tamat masa. Bagaimana kita boleh menyelesaikan masalah?
  • Bolehkah paket data dihantar terus melalui paip di lapisan fizikal?
  • Urutan perniagaan pengguna yang menanti adalah dalam Keadaan, pada pukul berapa ia terjaga?
  • ...
  • Seterusnya, penulis akan menggunakan Dubbo2.5.3 sebagai Pengguna dan 2.7.3 sebagai Pembekal untuk menerangkan keseluruhan proses interaksi Pengarang berdiri dalam perspektif paket data dan memberitahunya dalam orang pertama. Kencangkan tali pinggang keledar anda. . melancong.
    Pada suatu hari, saya hampir dihantar keluar, dan dikatakan bahawa saya akan pergi ke tempat bernama Dubbo 2.7.3 Provider.
  • Pada hari ini, urutan perniagaan memulakan panggilan kaedah, dalam FailoverClusterInvoker#doInvoke code> Saya memilih Penyedia, kemudian melalui pelbagai Penapis Pengguna, kemudian melalui saluran paip Netty3, dan akhirnya lulus <code style="font-size: 14px;word-wrap: break-word;padding: 2px 4px;border-radius : 4px ;margin: 0 2px;warna latar belakang: rgba(27,31,35,.05);font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;word-break: break-all;color: # ff6441; ">NioWorker#scheduleWriteIfNecessary kaedah, saya datang ke baris gilir writeTaskQueue NioWorker. FailoverClusterInvoker#doInvoke我選擇了一個(gè)Provider,然后經(jīng)過各種Consumer Filter,再經(jīng)過Netty3的pipeline,最后通過NioWorker#scheduleWriteIfNecessary方法,我來到了NioWorker的writeTaskQueue隊(duì)列中。

    當(dāng)我回頭看主線程時(shí),發(fā)現(xiàn)他在DefaultFuture中的Condition等待,我不知道他在等什么,也不知道他要等多久。

    我在writeTaskQueue隊(duì)列排了一會隊(duì),看到netty3 IO worker線程在永不停歇的執(zhí)行run方法,大家都稱這個(gè)為死循環(huán)。

    最后,我很幸運(yùn),NioWorker#processWriteTaskQueue

    Apabila saya melihat kembali pada utas utama, saya mendapati bahawa dia sedang menunggu dalam Condition dalam DefaultFuture Saya tidak tahu apa yang dia tunggu atau berapa lama dia perlu menunggu.

    Saya beratur dalam baris gilir writeTaskQueue untuk seketika dan melihat bahawa urutan pekerja IO netty3 sedang melaksanakan kaedah larian tanpa henti.
    5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!Akhirnya, saya bernasib baik, NioWorker#processWriteTaskQueue memilih saya, saya telah ditulis kepada penampan Soket sistem operasi Saya menunggu di penampan Bagaimanapun, saya akan merenungkan perjalanan hari ini, saya melalui dua kumpulan pelancongan, yang dipanggil rangkaian utama dan netty3 IO benang pekerja Baik, kedua-duanya Perkhidmatan semua kumpulan pelancongan adalah baik dan sangat cekap.

    Saya hanya merakam apa yang saya lihat hari ini dan melukisnya ke dalam gambar Sudah tentu, saya mengabaikan bahagian yang tidak penting.

    2. Sistem pengendalian menghantar paket data
  1. Saya telah mengalami banyak perkara ajaib dalam penimbal soket sistem pengendalian.

  2. Di tempat yang dipanggil lapisan pengangkutan, saya menambah nombor port sasaran dan nombor port sumber

  3. Di tempat yang dipanggil lapisan rangkaian, saya menambah IP sasaran dan IP sumber, dan pada masa yang sama masa, melalui IP sasaran ANDed dengan topeng untuk mencari IP "lompat seterusnya"

    ???????? Di tempat yang dipanggil lapisan pautan data, saya menambah alamat MAC sasaran "hop seterusnya" melalui protokol ARP. Alamat MAC sumber??

Perkara yang paling menarik ialah kami mengambil bahagian kereta kabel setiap kali kami menukar kereta kabel, kami terpaksa mengubah suai alamat MAC sasaran dan alamat MAC sumber Saya kemudiannya, saya bertanya kepada rakan-rakan paket data saya industri yang sama dengan mod ini dipanggil "Lompat Seterusnya", lompat atas lompatan demi lompatan. Terdapat banyak paket data di sini Yang besar adalah dalam satu kereta kabel, dan yang lebih kecil diperah ke dalam satu kereta kabel Terdapat juga perkara yang mengerikan kereta (walaupun ini tidak penting kepada paket data kami), ini dipanggil membongkar dan melekat. Dalam tempoh ini, kami melepasi suis dan penghala, dan tempat ini sangat gembira untuk bermain.

Semestinya ada juga perkara yang tidak menyenangkan iaitu kesesakan kereta kabel di destinasi penuh, dan tiada masa untuk dibawa pergi, jadi tunggu sahaja. . dia boleh mengendalikan membongkar dan melekat.

Saya akan kekal dalam kumpulan benang AllChannelHandler buat sementara waktu, jadi saya juga melukis gambar untuk merakam perjalanan.

NioEventLoop#processSelectedKeys,再經(jīng)過pipeline中的各種入站handler,我來到了AllChannelHandler的線程池,當(dāng)然我有很多選擇,但是我隨便選了一個(gè)目的地,這里會經(jīng)歷解碼、一系列的Filter,才會來的目的地“業(yè)務(wù)方法”,NettyCodecAdapter#InternalDecoder

Sejak itu, perjalanan saya telah berakhir, dan cerita baru akan diteruskan dengan pakej data baharu.
5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!

4. Satu paket data baru telah dijana di sebelah Penyedia

5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!
Saya adalah paket data, dilahirkan di sebuah bandar bernama Dubbo2.7.3 Provider, misi saya adalah untuk membangunkan benang yang ditakdirkan, seterusnya Saya Akan mulakan perjalanan ke tempat yang dipanggil Dubbo2.5.3 Pengguna.

Selepas kaedah perniagaan Provider dilaksanakan

  • 由業(yè)務(wù)線程經(jīng)過io.netty.channel.AbstractChannelHandlerContext#writeAndFlush
  • io.netty.channel.AbstractChannelHandlerContext#writeAndFlush

  • 再經(jīng)過io.netty.util.concurrent.SingleThreadEventExecutor#execute 執(zhí)行addTask
  • 將任務(wù)放入隊(duì)列io.netty.util.concurrent.SingleThreadEventExecutor#taskQueue
  • 我便跟隨著io.netty.channel.AbstractChannelHandlerContext$WriteTask等待NioEventLoop發(fā)車,等待的過程中,我記錄了走過的腳步。
  • 5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!

    在這里,我看到NioEventLoop是一個(gè)死循環(huán),不停地從任務(wù)隊(duì)列取任務(wù),執(zhí)行任務(wù)AbstractChannelHandlerContext.WriteAndFlushTask,然后指引我們到socket緩沖區(qū)等候,永不知疲倦,我似乎領(lǐng)略到他身上有一種倔強(qiáng)的、追求極致的匠人精神。

    經(jīng)過io.netty.channel.AbstractChannel.AbstractUnsafe#write

    再經(jīng)過io.netty.util. concurrent.SingleThreadEventExecutor#execute 執(zhí)行addTask????將任務(wù)放入隊(duì)列io.netty.util.concurrent.SingleThreadEventExecutor#taskQueue????我便跟隨著io.netty.channel.AbstractChannelHandlerContext$WriteTask等待NioEventLoop發(fā)車,等待的過程中,我記錄了語。 >
    5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!

    在這里,我看到NioEventLoop是一個(gè)死循環(huán),不停地從任務(wù)隊(duì)列取任務(wù),執(zhí)行任務(wù)AbstractChannelHandlerContext.WriteAndFlushTask,然后指引我們到socket緩沖區(qū)等候,永不知疲倦,我似乎領(lǐng)們到socket緩沖區(qū)等候,永不知疲倦,我似乎領(lǐng)世略到乎領(lǐng)不強(qiáng)的、追求極致的匠人精神。??

    經(jīng)過io.netty.channel.AbstractChannel.AbstractUnsafe#write,我到達(dá)了操作系統(tǒng)socket緩沖醫(yī)統(tǒng)socket緩沖區(qū)。在沖區(qū)。在泱經(jīng)和大多數(shù)數(shù)據(jù)包一樣,也是做纜車達(dá)到目的地。??

    5 Tiba di dubbo 2.5.3 Pengguna

    Selepas tiba di dubbo 2.5.3 Pengguna, saya menunggu di buffer soket sistem operasi untuk seketika, dan kemudian mengambil "Zero Copy" di bot laju dan tiba Destinasi sebenar. Destinasi dubbo 2.5.3 Pengguna, di sini saya dapati, NioWorker#run ialah gelung tak terhingga, dan kemudian melaksanakan <code style="font-size: 14px;word-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin: 0 2px;background-color: rgba( 27,31,35,.05);font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;word-break: break-all;color: #ff6441;">NioWorker#processSelectedKeys, melalui NioWorker#read cara untuk membacanya, saya mencapai kumpulan benang daripada AllChannelHandler, Ini ialah kumpulan benang perniagaan. NioWorker#run是一個(gè)死循環(huán),然后執(zhí)行NioWorker#processSelectedKeys,通過NioWorker#read方式讀出來,我就到達(dá)了AllChannelHandler的線程池,這是一個(gè)業(yè)務(wù)線程池。

    我在這里等待一會,等任務(wù)被調(diào)度,我看見com.alibaba.dubbo.remoting.exchange.support.DefaultFuture#doReceived

    Saya menunggu di sini sebentar, menunggu tugasan dijadualkan, dan saya melihat com.alibaba .dubbo.remoting.exchange.support.DefaultFuture#doReceived telah dilaksanakan dan isyarat Keadaan telah dilaksanakan pada masa yang sama. Saya melihat benang yang tersumbat sedang dikejutkan di kejauhan.

    Pada ketika ini, misi saya telah selesai dan perjalanan ini telah berakhir.

    Ringkasan model threading netty3 dan netty4

    Kami meringkaskan model threading netty3 dan netty4 berdasarkan penerangan kendiri kedua-dua paket data.

    1. Proses menulis Netty3

    5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!

    2. sebagai netty4 , saluran paip Ia dilaksanakan oleh benang IO.

    Ringkasan: Perbezaan antara model benang netty3 dan netty4 terletak pada proses penulisan Dalam netty3, saluran paip dilaksanakan oleh benang perniagaan, manakala dalam netty4, tanpa mengira membaca dan menulis, saluran paip dilaksanakan oleh benang IO. 5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!

    Rantaian Pengendali dalam ChannelPipeline dalam netty4 dijadualkan secara seragam secara bersiri oleh benang I/O Sama ada operasi baca atau tulis, operasi tulis dalam netty3 diproses oleh urutan perniagaan. Dalam netty4, penggunaan masa yang disebabkan oleh penukaran konteks antara utas boleh dikurangkan, tetapi dalam netty3, utas perniagaan boleh melaksanakan rantaian Pengendali secara serentak. Jika terdapat beberapa operasi Pengendali yang memakan masa yang akan membawa kepada kecekapan rendah netty4, anda boleh mempertimbangkan untuk melaksanakan operasi yang memakan masa ini terlebih dahulu pada urutan perniagaan dan bukannya memprosesnya dalam Pengendali. Memandangkan rangkaian perniagaan boleh dilaksanakan secara serentak, kecekapan juga boleh dipertingkatkan.

    Some masalah masalah masalah yang sukar telah menemui beberapa masalah yang sukar, seperti ketika Didi.log yang dijanjikan oleh pembekal mengambil masa yang normal, tetapi masa pengguna keluar pada masa ini, ada yang berikut arahan penyelesaian masalah, didi.log Penapis sebenarnya berada pada tahap yang sangat dalam dan selalunya tidak dapat menggambarkan pelaksanaan sebenar kaedah perniagaan.

    Pembekal Selain pelaksanaan hala tuju perniagaan, siri mungkin juga memakan masa, jadi anda boleh menggunakan arthas untuk memantau kaedah terluar org.apache.dubbo.remoting.transport.DecodeHandler#diterima untuk mengecualikan kaedah perniagaan yang Memakan masa. soket melalui netstat, seperti Recv-Q , Send-Q dan Recv-Q ialah data yang telah tiba dalam penimbal penerima tetapi belum lagi dibaca oleh kod aplikasi. Send-Q telah mencapai penimbal penghantaran, tetapi pihak yang satu lagi belum membalas dengan data Ack. Kedua-dua jenis data ini secara amnya tidak terkumpul Jika terkumpul, mungkin terdapat masalah.
    1. Lihat sama ada kaedah Consumer NioWorker#processSelectedKeys (dubbo2.5.3) memakan masa.
    2. Hingga ke semua butiran keseluruhan pautan... masalah pasti dapat diselesaikan.
    5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!
      Epilog
    1. Semasa keseluruhan proses interaksi, pengarang mengetepikan beberapa butiran panggilan tindanan benang dan butiran kod sumber, seperti bersiri dan penyahsirilan, cara dubbo membaca paket Penapis data yang lengkap, Bagaimana diisih dan diedarkan sebelum kaedah perniagaan dilaksanakan, dan bagaimanakah mod Reaktor Netty dilaksanakan? Ini adalah soalan yang sangat menarik...

    Atas ialah kandungan terperinci 5 soalan temuduga Dubbo dengan kandungan emas yang tinggi!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

    Alat AI Hot

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    Video Face Swap

    Video Face Swap

    Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Topik panas

    Tutorial PHP
    1502
    276
    Tutorial praktikal pembangunan SpringBoot+Dubbo+Nacos Tutorial praktikal pembangunan SpringBoot+Dubbo+Nacos Aug 15, 2023 pm 04:49 PM

    Artikel ini akan menulis contoh terperinci untuk bercakap tentang perkembangan sebenar dubbo+nacos+Spring Boot. Artikel ini tidak akan merangkumi terlalu banyak pengetahuan teori, tetapi akan menulis contoh paling mudah untuk menggambarkan bagaimana dubbo boleh disepadukan dengan nacos untuk membina persekitaran pembangunan dengan cepat.

    Analisis prinsip dan contoh rangka kerja perkhidmatan teragih berasaskan Java Dubbo Analisis prinsip dan contoh rangka kerja perkhidmatan teragih berasaskan Java Dubbo Apr 24, 2023 pm 08:13 PM

    Prakata Sebelum memperkenalkan Dubbo, mari kita fahami konsep asas dahulu: Dubbo ialah rangka kerja RPC ialah Panggilan Prosedur Jauh (panggilan prosedur jauh Ia digunakan dalam seni bina aplikasi tunggal dan seni bina aplikasi menegak Semuanya adalah panggilan prosedur tempatan. Ia membenarkan program untuk memanggil prosedur atau fungsi dalam ruang alamat lain (biasanya mesin lain yang dikongsi pada rangkaian) tanpa pengaturcara perlu mengekodkan butiran panggilan jauh secara eksplisit. Panggilan jauh antara aplikasi seni bina yang diedarkan memerlukan rangka kerja RPC untuk membuat panggilan jauh semudah panggilan tempatan. Rangka kerja Dubbo mempunyai komponen Pengguna berikut, yang memanggil perkhidmatan jauh

    Mengapa Dubbo ditulis semula dalam Go? Mengapa Dubbo ditulis semula dalam Go? Apr 10, 2023 pm 12:51 PM

    [[443126]] Biar saya mulakan dengan beberapa perkataan Saya sering memikirkan banyak "soalan mengapa" teknikal apabila saya berjalan Kadang-kadang saya berfikir tentang soalan untuk masa yang lama, dan ia tidak selesai sehingga saya dapat meyakinkan diri saya setiap perkara dalam soalan. Jadi saya ingin merakam pemikiran ini dan membentuk artikel, yang boleh digunakan sebagai siri baru. Anda mungkin tidak dapat melihat kod dalam artikel ini, tetapi anda boleh melihat sekilas beberapa masalah yang mudah diabaikan, serta "mengapa" masalah yang lebih mendalam. Hari ini kami membawakan anda artikel pertama, mengapa Dubbo perlu ditulis semula dalam Go Dubbo, yang dilahirkan di Alibaba dan sumber terbuka pada 2011, telah melalui 10 tahun? Pada 2019, ia telah ditulis semula dalam Go dan sumber terbuka Kini dua tahun kemudian, ia telah berkembang daripada versi V1.0.0 asal kepada V3.0.0.

    Analisis kod sumber Dubbo: Panduan pemula Analisis kod sumber Dubbo: Panduan pemula Aug 23, 2023 pm 02:44 PM

    Jika anda sudah mahir menggunakan Dubbo, artikel ini tidak sesuai untuk anda, tetapi jika anda ingin memahami Dubbo dan belajar Dubbo, ia sangat sesuai untuk anda.

    Bagaimana untuk mengintegrasikan Dubbo zookeeper dalam SpringBoot Bagaimana untuk mengintegrasikan Dubbo zookeeper dalam SpringBoot May 17, 2023 pm 02:16 PM

    dockerpullzookeeperdockerrun --namezk01-p2181:2181--restartalways-d2e30cac00aca menunjukkan bahawa zookeeper telah berjaya memulakan Zookeeper dan Dubbo ? ZooKeeperZooKeeper ialah perkhidmatan penyelarasan aplikasi teragih sumber terbuka yang diedarkan. Ia adalah perisian yang menyediakan perkhidmatan yang konsisten untuk aplikasi yang diedarkan Fungsi yang disediakan termasuk: penyelenggaraan konfigurasi, perkhidmatan nama domain, penyegerakan teragih, perkhidmatan kumpulan, dsb. DubboDubbo ialah rangka kerja perkhidmatan teragih sumber terbuka Alibaba Ciri terbesarnya ialah ia berstruktur secara berlapis.

    Bagaimana untuk menganalisis kelemahan penyahserialisasian Apache Dubbo Bagaimana untuk menganalisis kelemahan penyahserialisasian Apache Dubbo May 17, 2023 pm 04:01 PM

    Pengenalan Dubbo ialah rangka kerja perkhidmatan berprestasi tinggi dan cemerlang sumber terbuka oleh Alibaba, yang membolehkan aplikasi merealisasikan output perkhidmatan dan fungsi input melalui RPC berprestasi tinggi, dan boleh disepadukan dengan lancar dengan rangka kerja Spring. Ia menyediakan tiga keupayaan teras: permohonan kaedah jauh berorientasikan antara muka, toleransi kesalahan pintar dan pengimbangan beban, dan pendaftaran dan penemuan perkhidmatan automatik. Gambaran Keseluruhan Pada 23 Jun 2020, ApacheDubbo secara rasmi mengeluarkan notis risiko tentang pelaksanaan kod jauh ApacheDubbo Nombor kerentanan ialah CVE-2020-1948, dan tahap kerentanan ialah: berisiko tinggi. ApacheDubbo ialah rangka kerja JavaRPC sumber terbuka berprestasi tinggi dan ringan Ia menyediakan tiga keupayaan teras: jarak jauh berorientasikan antara muka

    Apakah prinsip dan mekanisme dubbo Apakah prinsip dan mekanisme dubbo Jan 17, 2024 pm 03:25 PM

    Penjelasan prinsip dan mekanisme dubbo: 1. Komponen teras; 3. Toleransi kesalahan kluster; , Skalabiliti 9. Keselamatan; 10. Integrasi dengan Spring; Pengenalan terperinci: 1. Komponen teras, termasuk pusat pendaftaran, pusat pemantauan, pengguna perkhidmatan dan penyedia perkhidmatan 2. Prinsip komunikasi Dubbo menggunakan rangka kerja komunikasi rangkaian untuk membuat panggilan perkhidmatan dan sebagainya.

    Apakah kaedah reka bentuk keseluruhan seni bina java Dubbo? Apakah kaedah reka bentuk keseluruhan seni bina java Dubbo? Apr 27, 2023 pm 09:52 PM

    1. Perihalan perhubungan panggilan Dubbo 1.1 Komponen di sini terutamanya terdiri daripada empat bahagian: Pembekal: pembekal perkhidmatan yang mendedahkan perkhidmatan: bertanggungjawab untuk data interaksi protokol antara pembekal dan pengguna Perkhidmatan: maklumat perkhidmatan perniagaan sebenar boleh difahami. Antara muka dan melaksanakan Kontena: Persekitaran operasi Dubbo Pengguna: Pengguna perkhidmatan yang memanggil perkhidmatan jauh Protokol: Bertanggungjawab untuk data interaksi protokol antara pembekal dan pengguna Kluster: Memahami maklumat senarai di bahagian penyedia Proksi: Boleh difahami sebagai ejen panggilan Perkhidmatan pembekal, yang mengambil alih logik panggilan antara muka dalam Pengguna ●Daftar: Mendaftar

    See all articles