Current Configuration
Solr Version: 7.5.0
Operating mode: solrcloud
Number of shards: 1

Configuration of nodes:
1 tlog reader (static)
One tlog replica (static)
Multiple pull replicas (started dynamically by AutoScalingGroup in aws)


Startup activity :

1. instance launched by AutoScalingGroup of AWS
2. Solr starts in systemd.
3. systemd's ExecStartPost will join the cluster as a pull type replica by
throwing a request such as the following
curl -sSf "
http://localhost:8983/solr/admin/collections?action=ADDREPLICA&collection=${COLLECTION}&shard=shard1&node=${IP}:8983_solr
&type=pull

Stop activity:
1. systemd's ExecStop stops solr after throwing the following request: curl
-Ss "${COLLECTION}&shard=shard1&replica=${CORE}
curl -Ss "
http://localhost:8983/solr/admin/collections?action=DELETEREPLICA&collection=${COLLECTION}&shard=shard1&replica=${CORE}
"


Problem :
The request is forwarded to another replica because the instance is started
and cannot process itself until the replication completes. (Right?)
In most cases, this is not a problem, but the problem occurs when the
instance is started and stopped at the same time.

- Instance startup forwards the request to another replica
- Removing replicas by stopping the instance
When all of these things work at the same time, a 500 series error occurs
in the newly started instance. The errors are as follows.
``.
org.apache.solr.common.SolrException: Error trying to proxy request for url
````
This happens because the instance that is launched forwards the request to
the stopped instance before it receives a notification from ZooKeeper.

I'm trying to figure out how to do the following at the moment, but are
there any other workarounds that look good?  Or will the problem be solved
by upgrading?
- DELETEREPLICA and then wait a few seconds to stop solr

Thank you.

Translated with www.DeepL.com/Translator (free version)

Reply via email to