Elasticsearch - Modul

Elasticsearch terdiri dari sejumlah modul, yang bertanggung jawab atas fungsinya. Modul ini memiliki dua jenis pengaturan sebagai berikut -

  • Static Settings- Pengaturan ini perlu dikonfigurasi di file config (elasticsearch.yml) sebelum memulai Elasticsearch. Anda perlu memperbarui semua node perhatian di cluster untuk mencerminkan perubahan dengan pengaturan ini.

  • Dynamic Settings - Pengaturan ini dapat disetel di Elasticsearch langsung.

Kami akan membahas berbagai modul Elasticsearch di bagian selanjutnya dari bab ini.

Perutean Tingkat Kluster dan Alokasi Pecahan

Pengaturan tingkat cluster memutuskan alokasi shard ke node yang berbeda dan realokasi shard ke cluster rebalance. Ini adalah pengaturan berikut untuk mengontrol alokasi shard.

Alokasi Shard Tingkat Cluster

Pengaturan Nilai yang memungkinkan Deskripsi
cluster.routing.allocation.enable
semua Nilai default ini memungkinkan alokasi shard untuk semua jenis shard.
pendahuluan Ini memungkinkan alokasi shard hanya untuk shard utama.
new_primaries Ini memungkinkan alokasi shard hanya untuk shard utama untuk indeks baru.
tidak ada Ini tidak mengizinkan alokasi shard apa pun.
cluster.routing.allocation .node_concurrent_recoveries Nilai numerik (secara default 2) Ini membatasi jumlah pemulihan shard secara bersamaan.
cluster.routing.allocation .node_initial_primaries_recoveries Nilai numerik (secara default 4) Ini membatasi jumlah pemulihan primer awal paralel.
cluster.routing.allocation .same_shard.host Nilai Boolean (secara default salah) Ini membatasi alokasi lebih dari satu replika pecahan yang sama di node fisik yang sama.
indices.recovery.concurrent _streams Nilai numerik (secara default 3) Ini mengontrol jumlah aliran jaringan terbuka per node pada saat pemulihan shard dari pecahan peer.
indices.recovery.concurrent _small_file_streams Nilai numerik (secara default 2) Ini mengontrol jumlah aliran terbuka per node untuk file kecil yang berukuran kurang dari 5mb pada saat pemulihan pecahan.
cluster.routing.rebalance.enable
semua Nilai default ini memungkinkan penyeimbangan untuk semua jenis pecahan.
pendahuluan Hal ini memungkinkan penyeimbangan shard hanya untuk shard utama.
replika Hal ini memungkinkan penyeimbangan pecahan hanya untuk pecahan replika.
tidak ada Ini tidak mengizinkan penyeimbangan pecahan apa pun.
cluster.routing.allocation .allow_rebalance
selalu Nilai default ini selalu memungkinkan penyeimbangan ulang.
indices_primaries _active Ini memungkinkan penyeimbangan ulang ketika semua pecahan utama dalam cluster dialokasikan.
Indices_all_active Hal ini memungkinkan penyeimbangan ulang ketika semua pecahan utama dan replika dialokasikan.
cluster.routing.allocation.cluster _concurrent_rebalance Nilai numerik (secara default 2) Ini membatasi jumlah shard balancing bersamaan dalam cluster.
cluster.routing.allocation .balance.shard Nilai float (secara default 0.45f) Ini menentukan faktor bobot untuk pecahan yang dialokasikan pada setiap node.
cluster.routing.allocation .balance.index Nilai float (secara default 0,55f) Ini menentukan rasio jumlah pecahan per indeks yang dialokasikan pada node tertentu.
cluster.routing.allocation .balance.threshold Nilai float non negatif (secara default 1.0f) Ini adalah nilai pengoptimalan minimum dari operasi yang harus dilakukan.

Alokasi Shard Berbasis Disk

Pengaturan Nilai yang memungkinkan Deskripsi
cluster.routing.allocation.disk.threshold_enabled Nilai Boolean (secara default benar) Ini mengaktifkan dan menonaktifkan penentu alokasi disk.
cluster.routing.allocation.disk.watermark.low Nilai string (secara default 85%) Ini menunjukkan penggunaan disk secara maksimal; setelah titik ini, tidak ada pecahan lain yang dapat dialokasikan ke disk tersebut.
cluster.routing.allocation.disk.watermark.high Nilai string (secara default 90%) Ini menunjukkan penggunaan maksimum pada saat alokasi; jika titik ini tercapai pada saat alokasi, maka Elasticsearch akan mengalokasikan pecahan tersebut ke disk lain.
cluster.info.update.interval Nilai string (secara default 30 detik) Ini adalah interval antara pemeriksaan penggunaan disk.
cluster.routing.allocation.disk.include_relocations Nilai Boolean (secara default benar) Ini memutuskan apakah akan mempertimbangkan shard yang saat ini sedang dialokasikan, sambil menghitung penggunaan disk.

Penemuan

Modul ini membantu cluster untuk menemukan dan memelihara status semua node di dalamnya. Status cluster berubah ketika node ditambahkan atau dihapus darinya. Pengaturan nama cluster digunakan untuk membuat perbedaan logis antara cluster yang berbeda. Ada beberapa modul yang membantu Anda menggunakan API yang disediakan oleh vendor cloud dan seperti yang diberikan di bawah ini -

  • Penemuan Azure
  • Penemuan EC2
  • Penemuan mesin komputasi Google
  • Penemuan Zen

pintu gerbang

Modul ini mempertahankan status cluster dan data shard di seluruh cluster dimulai ulang. Berikut ini adalah pengaturan statis modul ini -

Pengaturan Nilai yang memungkinkan Deskripsi
gateway.expected_nodes nilai numerik (secara default 0) Jumlah node yang diharapkan berada di cluster untuk pemulihan shard lokal.
gateway.expected_master_nodes nilai numerik (secara default 0) Jumlah node master yang diharapkan berada di cluster sebelum memulai pemulihan.
gateway.expected_data_nodes nilai numerik (secara default 0) Jumlah node data yang diharapkan di cluster sebelum memulai pemulihan.
gateway.recover_after_time Nilai string (secara default 5m) Ini adalah interval antara pemeriksaan penggunaan disk.
cluster.routing.allocation. disk.include_relocations Nilai Boolean (secara default benar)

Ini menentukan waktu menunggu proses pemulihan untuk dimulai terlepas dari jumlah node yang bergabung dalam cluster.

gateway.recover_ after_nodes
gateway.recover_after_master_nodes
gateway.recover_after_data_nodes

HTTP

Modul ini mengelola komunikasi antara klien HTTP dan Elasticsearch API. Modul ini dapat dinonaktifkan dengan mengubah nilai http.enabled menjadi false.

Berikut ini adalah pengaturan (dikonfigurasi di elasticsearch.yml) untuk mengontrol modul ini -

S.No Pengaturan & Deskripsi
1

http.port

Ini adalah port untuk mengakses Elasticsearch dan berkisar antara 9200-9300.

2

http.publish_port

Porta ini untuk klien http dan juga berguna jika ada firewall.

3

http.bind_host

Ini adalah alamat host untuk layanan http.

4

http.publish_host

Ini adalah alamat host untuk klien http.

5

http.max_content_length

Ini adalah ukuran maksimum konten dalam permintaan http. Nilai defaultnya adalah 100mb.

6

http.max_initial_line_length

Ini adalah ukuran maksimum URL dan nilai defaultnya adalah 4kb.

7

http.max_header_size

Ini adalah ukuran header http maksimum dan nilai defaultnya adalah 8kb.

8

http.compression

Ini mengaktifkan atau menonaktifkan dukungan untuk kompresi dan nilai default-nya salah.

9

http.pipelinig

Ini mengaktifkan atau menonaktifkan pipelining HTTP.

10

http.pipelining.max_events

Ini membatasi jumlah acara yang akan diantrekan sebelum menutup permintaan HTTP.

Indeks

Modul ini memelihara pengaturan, yang ditetapkan secara global untuk setiap indeks. Pengaturan berikut terutama terkait dengan penggunaan memori -

Pemutus arus

Ini digunakan untuk mencegah operasi menyebabkan OutOfMemroyError. Pengaturan ini terutama membatasi ukuran heap JVM. Misalnya, pengaturan indices.breaker.total.limit, yang defaultnya adalah 70% dari heap JVM.

Cache Data Lapangan

Ini digunakan terutama saat menggabungkan di bidang. Direkomendasikan untuk memiliki cukup memori untuk mengalokasikannya. Jumlah memori yang digunakan untuk cache data lapangan dapat dikontrol menggunakan pengaturan indices.fielddata.cache.size.

Cache Kueri Node

Memori ini digunakan untuk menyimpan hasil query. Cache ini menggunakan kebijakan pengusiran Least recent used (LRU). Indices.queries.cahce.size mengatur ukuran memori dari cache ini.

Penyangga Pengindeksan

Buffer ini menyimpan dokumen yang baru dibuat dalam indeks dan menghapusnya ketika buffer sudah penuh. Pengaturan seperti indices.memory.index_buffer_size mengontrol jumlah heap yang dialokasikan untuk buffer ini.

Cache Permintaan Shard

Cache ini digunakan untuk menyimpan data pencarian lokal untuk setiap pecahan. Cache dapat diaktifkan selama pembuatan indeks atau dapat dinonaktifkan dengan mengirimkan parameter URL.

Disable cache - ?request_cache = true
Enable cache "index.requests.cache.enable": true

Pemulihan Indeks

Ini mengontrol sumber daya selama proses pemulihan. Berikut ini adalah pengaturannya -

Pengaturan Nilai default
indices.recovery.concurrent_streams 3
indices.recovery.concurrent_small_file_streams 2
indices.recovery.file_chunk_size 512kb
indices.recovery.translog_ops 1000
indices.recovery.translog_size 512kb
indices.recovery.compress benar
indices.recovery.max_bytes_per_sec 40mb

Interval TTL

Interval Time to Live (TTL) menentukan waktu dokumen, setelah itu dokumen dihapus. Berikut ini adalah pengaturan dinamis untuk mengontrol proses ini -

Pengaturan Nilai default
indices.ttl.interval 60-an
indices.ttl.bulk_size 1000

Node

Setiap node memiliki pilihan untuk menjadi node data atau tidak. Anda dapat mengubah properti ini dengan mengubahnode.datapengaturan. Menetapkan nilai sebagaifalse mendefinisikan bahwa node bukanlah node data.