Search::Elasticsearch::Role::CxnPool::Sniff - A CxnPool role for connecting to a local cluster with a dynamic node list
version 5.02
sniff_interval
How often should we perform a sniff in order to detect whether new nodes have been added to the cluster. Defaults to `300` seconds.
sniff_max_content_length
Whether we should set the max_content_length dynamically while sniffing. Defaults to true unless a fixed max_content_length was specified.
max_content_length
schedule_check()
$cxn_pool->schedule_check
Schedules a sniff before the next request is processed.
parse_sniff()
$bool = $cxn_pool->parse_sniff(\%nodes);
Parses the response from a sniff request and extracts the hostname/ip of all listed nodes, filtered through "should_accept_node()". If any live nodes are found, they are passed to "set_cxns()" in Search::Elasticsearch::Role::CxnPool. The max_content_length is also detected if "sniff_max_content_length" is true.
should_accept_node()
$host = $cxn_pool->should_accept_node($host,$node_id,\%node_data)
This method serves as a hook which can be overridden by the user. When a sniff is performed, this method is called with the host (eg 192.168.5.100:9200), the node_id (the ID assigned to the node by Elasticsearch) and the node_data which contains the information about the node that Elasticsearch has returned, eg:
host
192.168.5.100:9200
node_id
node_data
{ "transport_address" => "inet[192.168.5.100/192.168.5.100:9300]", "http" : { "publish_address" => "inet[/192.168.5.100:9200]", "max_content_length" => "100mb", "bound_address" => "inet[/0:0:0:0:0:0:0:0:9200]", "max_content_length_in_bytes" : 104857600 }, "version" => "0.90.4", "name" => "Silver Sable", "hostname" => "search1.domain.com", "http_address" => "inet[/192.168.5.100:9200]" }
If the node should be accepted (ie used to serve data), then it should return the host value to use. By default, nodes are always accepted.
Clinton Gormley <drtech@cpan.org>
This software is Copyright (c) 2017 by Elasticsearch BV.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
To install Search::Elasticsearch, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Search::Elasticsearch
CPAN shell
perl -MCPAN -e shell install Search::Elasticsearch
For more information on module installation, please visit the detailed CPAN module installation guide.