Condition Slave OpenResty Replication pollInterval 30s All Master All Slave All Slave update Replication pollInterval 1min Condition Slave Suggest Slave Suggest Slave Replication pollInterval bit long PHP General Specific purpose
Condition Slave OpenResty Replication pollInterval 30s All Master All Slave All Slave update Replication pollInterval 1min Condition Slave Suggest Slave Suggest Slave Replication pollInterval bit long PHP General Specific purpose
Condition Slave OpenResty Replication pollInterval 30s All Master All Slave All Slave update Replication pollInterval 1min Condition Slave Suggest Slave Suggest Slave Replication pollInterval bit long PHP General Specific purpose
worker trigger dequeue black hole Q4M Solr (master) worker trigger dequeue black hole Q4M Solr (master) worker trigger dequeue black hole Q4M Solr (master) worker trigger dequeue soft commit several times per second Update Update item selected by consistent hashing Use MySQL replication as PubSub
$res = $ua->get(‘http://localhost/v1/health/service/".$SRV.'?passing'); my $ref = JSON::XS::decode_json($res->content); my @list = sort { $a cmp $b } map { $_->{Node}{Address} } @$ref; my $ketama = Algorithm::ConsistentHash::Ketama->new(); $ketama->add_bucket($_ . '_' . $timestamp, 1) for @list; my $s1 = $ketama->hash($item_id); return $s1 eq $my_ip; Get server list from Consul Make Consistent Hash Drawing by consistent-hashing Update Solr consistent-hashingͷ݁Ռ͕trueͳΒɺupdate consistent-hashingͷ݁Ռ͕falseͳΒɺdelete
hole Q4M Solr (master) worker trigger dequeue consul black hole Q4M Solr (master) worker trigger dequeue consul black hole Q4M Solr (master) worker trigger dequeue consul API/Go PHP PHP select distribute select request to all Solr servers and merge their resposne select select select select