Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan tindakan klien java elasticsearch

Bagaimana untuk melaksanakan tindakan klien java elasticsearch

WBOY
WBOYke hadapan
2023-05-22 08:43:501503semak imbas

Kebanyakan operasi dalam elasticsearch adalah melalui tindakan yang sepadan, yang terdapat dalam pakej tindakan. Strukturnya ditunjukkan dalam rajah di bawah:

Bagaimana untuk melaksanakan tindakan klien java elasticsearch

Ditunjukkan di sini ialah tangkapan skrin separa pakej Tindakan, yang mengandungi Tindakan yang sepadan dengan pelbagai fungsi. Pakej setiap tindakan juga sangat serupa dengan indeks. Tindakan ini semuanya diwarisi daripada tindakan asas, jadi pelaksanaannya sangat serupa. Angka berikut menunjukkan hubungan pewarisan indexaction

Bagaimana untuk melaksanakan tindakan klien java elasticsearch

Tindakan ini hanyalah pengganti dan tidak melaksanakan fungsi sebenar, jadi ia sangat mudah untuk dilaksanakan. Fungsi utama mereka adalah untuk menyediakan kaedah untuk mencipta respons dan permintaan baharu, sepadan dengan nama operasi yang sepadan. Ambil indexaction sebagai contoh. Rajah kaedahnya adalah seperti berikut:

Bagaimana untuk melaksanakan tindakan klien java elasticsearch

Anda boleh melihat bahawa ia hanya menyediakan dua kaedah untuk membuat respons dan permintaan, dan medan NAME , ini Medan NAME akan digunakan dalam panggilan tindakan seterusnya. Fungsi yang sepadan dilaksanakan dalam transportAction yang sepadan.

Bagaimana untuk melaksanakan tindakan klien java elasticsearch

Antara muka TransportAction diwarisi oleh semua tansportAction. Apabila pelanggan memanggil antara muka pelanggan yang berkaitan, pelanggan akan menghantar permintaan untuk melaksanakan transportAction. TransportAction bagi setiap fungsi melaksanakan kaedah doExecute, dan logik fungsi itu dilaksanakan dalam kaedah ini Kami tidak akan menyebutnya di sini buat masa ini.

Terdapat sekeping kod dalam analisis pelanggan:

TransportAction transportAction = actions.get((ClientAction)action) Fungsinya adalah untuk mendapatkan TransportAction berdasarkan tindakan itu. Kerana tindakan hanyalah proksi. Pelaksanaan persatuan ini dijalankan dalam ActionModule, seperti yang ditunjukkan dalam kod berikut:

registerAction(NodesInfoAction.INSTANCE, TransportNodesInfoAction.class);
        registerAction(NodesStatsAction.INSTANCE, TransportNodesStatsAction.class);
        registerAction(NodesShutdownAction.INSTANCE, TransportNodesShutdownAction.class);
        registerAction(NodesRestartAction.INSTANCE, TransportNodesRestartAction.class);
        registerAction(NodesHotThreadsAction.INSTANCE, TransportNodesHotThreadsAction.class);
        registerAction(ClusterStatsAction.INSTANCE, TransportClusterStatsAction.class);
        registerAction(ClusterStateAction.INSTANCE, TransportClusterStateAction.class);
        registerAction(ClusterHealthAction.INSTANCE, TransportClusterHealthAction.class)

Hanya sebahagian daripada kandungan ditunjukkan di sini, di mana modul akan mengikat tindakan dan TransportAction yang sepadan. Dengan cara ini, apabila pelanggan perlu menerima permintaan, ia akan mencari contoh tansportAction yang sepadan mengikut contoh tindakan yang sepadan, dan permintaan akhir akan diproses di bawahnya.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tindakan klien java elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam