Elasticsearch - Mô-đun
Elasticsearch bao gồm một số mô-đun, chịu trách nhiệm về chức năng của nó. Các mô-đun này có hai kiểu cài đặt như sau:
Static Settings- Các cài đặt này cần được định cấu hình trong tệp config (asticsearch.yml) trước khi khởi động Elasticsearch. Bạn cần cập nhật tất cả các nút quan tâm trong cụm để phản ánh những thay đổi của các cài đặt này.
Dynamic Settings - Các cài đặt này có thể được đặt trên Elasticsearch trực tiếp.
Chúng ta sẽ thảo luận về các mô-đun khác nhau của Elasticsearch trong các phần sau của chương này.
Định tuyến cấp độ cụm và phân bổ mảnh
Cài đặt cấp độ cụm quyết định việc phân bổ các phân đoạn cho các nút khác nhau và phân bổ lại các phân đoạn để cân bằng lại cụm. Đây là các cài đặt sau để kiểm soát phân bổ phân đoạn.
Phân bổ mảnh cấp độ cụm
Cài đặt | Giá trị có thể | Sự miêu tả |
---|---|---|
cluster.routing.allocation.enable | ||
tất cả | Giá trị mặc định này cho phép phân bổ phân đoạn cho tất cả các loại phân đoạn. | |
bầu cử sơ bộ | Điều này chỉ cho phép phân bổ phân đoạn cho các phân đoạn chính. | |
new_primaries | Điều này chỉ cho phép phân bổ phân đoạn cho các phân đoạn chính cho các chỉ số mới. | |
không ai | Điều này không cho phép bất kỳ phân bổ phân đoạn nào. | |
cluster.routing.allocation .node_concurrent_recoveries | Giá trị số (theo mặc định là 2) | Điều này hạn chế số lượng phục hồi phân đoạn đồng thời. |
cluster.routing.allocation .node_initial_primaries_recoveries | Giá trị số (theo mặc định là 4) | Điều này hạn chế số lần khôi phục chính ban đầu song song. |
cluster.routing.allocation .same_shard.host | Giá trị boolean (theo mặc định là false) | Điều này hạn chế việc phân bổ nhiều hơn một bản sao của cùng một phân đoạn trong cùng một nút vật lý. |
indices.recovery.concurrent _streams | Giá trị số (theo mặc định là 3) | Điều này kiểm soát số lượng luồng mạng mở trên mỗi nút tại thời điểm khôi phục phân đoạn từ các phân đoạn ngang hàng. |
indices.recovery.concurrent _small_file_streams | Giá trị số (theo mặc định là 2) | Điều này kiểm soát số luồng mở trên mỗi nút đối với các tệp nhỏ có kích thước dưới 5mb tại thời điểm khôi phục phân đoạn. |
cluster.routing.rebalance.enable | ||
tất cả | Giá trị mặc định này cho phép cân bằng cho tất cả các loại phân đoạn. | |
bầu cử sơ bộ | Điều này cho phép cân bằng phân đoạn chỉ cho các phân đoạn chính. | |
bản sao | Điều này cho phép cân bằng phân đoạn chỉ cho các phân đoạn bản sao. | |
không ai | Điều này không cho phép bất kỳ loại cân bằng phân đoạn nào. | |
cluster.routing.allocation .allow_rebalance | ||
luôn luôn | Giá trị mặc định này luôn cho phép tái cân bằng. | |
indices_primaries _active | Điều này cho phép tái cân bằng khi tất cả các phân đoạn chính trong cụm được phân bổ. | |
Indices_all_active | Điều này cho phép tái cân bằng khi tất cả các phân đoạn chính và bản sao được phân bổ. | |
cluster.routing.allocation.cluster _concurrent_rebalance | Giá trị số (theo mặc định là 2) | Điều này hạn chế số lượng cân bằng phân đoạn đồng thời trong cụm. |
cluster.routing.allocation .balance.shard | Giá trị nổi (theo mặc định là 0,45f) | Điều này xác định hệ số trọng số cho các phân đoạn được phân bổ trên mọi nút. |
cluster.routing.allocation .balance.index | Giá trị nổi (theo mặc định là 0,55f) | Điều này xác định tỷ lệ số phân đoạn trên mỗi chỉ mục được phân bổ trên một nút cụ thể. |
cluster.routing.allocation .balance.threshold | Giá trị float không âm (theo mặc định là 1.0f) | Đây là giá trị tối ưu hóa tối thiểu của các hoạt động nên được thực hiện. |
Phân bổ mảnh dựa trên đĩa
Cài đặt | Giá trị có thể | Sự miêu tả |
---|---|---|
cluster.routing.allocation.disk.threshold_enabled | Giá trị Boolean (theo mặc định là true) | Điều này cho phép và vô hiệu hóa trình quyết định phân bổ đĩa. |
cluster.routing.allocation.disk.watermark.low | Giá trị chuỗi (theo mặc định là 85%) | Điều này biểu thị mức sử dụng tối đa của đĩa; sau thời điểm này, không có phân đoạn nào khác có thể được cấp phát cho đĩa đó. |
cluster.routing.allocation.disk.watermark.high | Giá trị chuỗi (theo mặc định là 90%) | Điều này biểu thị mức sử dụng tối đa tại thời điểm phân bổ; nếu đạt đến điểm này tại thời điểm phân bổ, thì Elasticsearch sẽ phân bổ phân đoạn đó vào một đĩa khác. |
cluster.info.update.interval | Giá trị chuỗi (theo mặc định là 30 giây) | Đây là khoảng thời gian giữa các lần kiểm tra việc sử dụng ổ đĩa. |
cluster.routing.allocation.disk.include_relocations | Giá trị Boolean (theo mặc định là true) | Điều này quyết định xem có nên xem xét các phân đoạn hiện đang được cấp phát hay không trong khi tính toán mức sử dụng đĩa. |
Khám phá
Mô-đun này giúp một cụm phát hiện và duy trì trạng thái của tất cả các nút trong đó. Trạng thái của cụm thay đổi khi một nút được thêm vào hoặc xóa khỏi nó. Cài đặt tên cụm được sử dụng để tạo ra sự khác biệt hợp lý giữa các cụm khác nhau. Có một số mô-đun giúp bạn sử dụng các API được cung cấp bởi các nhà cung cấp đám mây và những mô-đun đó như được cung cấp bên dưới -
- Khám phá Azure
- Khám phá EC2
- Khám phá công cụ máy tính của Google
- Khám phá Zen
Cổng vào
Mô-đun này duy trì trạng thái cụm và dữ liệu phân đoạn trên toàn bộ cụm khởi động lại. Sau đây là các cài đặt tĩnh của mô-đun này:
Cài đặt | Giá trị có thể | Sự miêu tả |
---|---|---|
gateway.emplete_nodes | giá trị số (theo mặc định là 0) | Số lượng nút dự kiến sẽ có trong cụm để khôi phục các phân đoạn cục bộ. |
gateway.emplete_master_nodes | giá trị số (theo mặc định là 0) | Số lượng nút chính dự kiến sẽ có trong cụm trước khi bắt đầu khôi phục. |
gateway.eosystem_data_nodes | giá trị số (theo mặc định là 0) | Số lượng nút dữ liệu dự kiến trong cụm trước khi bắt đầu khôi phục. |
gateway.recover_osystem_time | Giá trị chuỗi (theo mặc định là 5m) | Đây là khoảng thời gian giữa các lần kiểm tra việc sử dụng ổ đĩa. |
cluster.routing.allocation. disk.include_relocations | Giá trị Boolean (theo mặc định là true) | Điều này chỉ định thời gian mà quá trình khôi phục sẽ chờ bắt đầu bất kể số lượng nút đã tham gia trong cụm. gateway.recover_ after_nodes |
HTTP
Mô-đun này quản lý giao tiếp giữa máy khách HTTP và các API Elasticsearch. Mô-đun này có thể bị vô hiệu hóa bằng cách thay đổi giá trị của http.enabled thành false.
Sau đây là các cài đặt (được định cấu hình trongasticsearch.yml) để điều khiển mô-đun này:
S. không | Cài đặt & Mô tả |
---|---|
1 | http.port Đây là một cổng để truy cập Elasticsearch và nó nằm trong khoảng từ 9200-9300. |
2 | http.publish_port Cổng này dành cho máy khách http và cũng hữu ích trong trường hợp tường lửa. |
3 | http.bind_host Đây là một địa chỉ máy chủ cho dịch vụ http. |
4 | http.publish_host Đây là địa chỉ máy chủ cho ứng dụng khách http. |
5 | http.max_content_length Đây là kích thước tối đa của nội dung trong một yêu cầu http. Giá trị mặc định của nó là 100mb. |
6 | http.max_initial_line_length Đây là kích thước tối đa của URL và giá trị mặc định của nó là 4kb. |
7 | http.max_header_size Đây là kích thước tiêu đề http tối đa và giá trị mặc định của nó là 8kb. |
số 8 | http.compression Điều này cho phép hoặc tắt hỗ trợ nén và giá trị mặc định của nó là false. |
9 | http.pipelinig Điều này cho phép hoặc vô hiệu hóa đường dẫn HTTP. |
10 | http.pipelining.max_events Điều này hạn chế số lượng sự kiện được xếp hàng trước khi đóng một yêu cầu HTTP. |
Chỉ số
Mô-đun này duy trì các cài đặt, được đặt chung cho mọi chỉ mục. Các cài đặt sau chủ yếu liên quan đến việc sử dụng bộ nhớ -
Ngắt mạch
Điều này được sử dụng để ngăn hoạt động gây ra lỗi OutOfMemroyError. Cài đặt chủ yếu hạn chế kích thước heap JVM. Ví dụ: cài đặt indices.breaker.total.limit, mặc định là 70% heap JVM.
Fielddata Cache
Điều này được sử dụng chủ yếu khi tổng hợp trên một lĩnh vực. Bạn nên có đủ bộ nhớ để phân bổ nó. Có thể kiểm soát dung lượng bộ nhớ được sử dụng cho bộ đệm dữ liệu trường bằng cách sử dụng cài đặt indices.fielddata.cache.size.
Node Query Cache
Bộ nhớ này được sử dụng để lưu kết quả truy vấn vào bộ nhớ đệm. Bộ nhớ đệm này sử dụng chính sách loại bỏ Ít được Sử dụng Gần đây (LRU). Cài đặt Indices.queries.cahce.size kiểm soát kích thước bộ nhớ của bộ đệm này.
Bộ đệm lập chỉ mục
Bộ đệm này lưu trữ các tài liệu mới được tạo trong chỉ mục và xóa chúng khi bộ đệm đầy. Cài đặt như indices.memory.index_buffer_size kiểm soát số lượng heap được phân bổ cho bộ đệm này.
Shard Request Cache
Bộ nhớ cache này được sử dụng để lưu trữ dữ liệu tìm kiếm cục bộ cho mọi phân đoạn. Bộ nhớ đệm có thể được kích hoạt trong quá trình tạo chỉ mục hoặc có thể bị vô hiệu hóa bằng cách gửi tham số URL.
Disable cache - ?request_cache = true
Enable cache "index.requests.cache.enable": true
Phục hồi các chỉ số
Nó kiểm soát các tài nguyên trong quá trình khôi phục. Sau đây là các cài đặt -
Cài đặt | Giá trị mặc định |
---|---|
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 | thật |
indices.recovery.max_bytes_per_sec | 40mb |
Khoảng thời gian TTL
Khoảng thời gian tồn tại (TTL) xác định thời gian của tài liệu, sau đó tài liệu sẽ bị xóa. Sau đây là các cài đặt động để kiểm soát quá trình này:
Cài đặt | Giá trị mặc định |
---|---|
indices.ttl.interval | 60s |
indices.ttl.bulk_size | 1000 |
Nút
Mỗi nút có một tùy chọn là nút dữ liệu hoặc không. Bạn có thể thay đổi thuộc tính này bằng cách thay đổinode.datacài đặt. Đặt giá trị làfalse xác định rằng nút không phải là một nút dữ liệu.