MySQL database cluster vs. replication setup for large crawler indexes
Crawler:


Put this process on a separate server (or multiple servers).
If practical, use multi-row INSERTs to batch-insert the rows.
See this for more tips on high-speed ingestion:  http://mysql.rjweb.org/doc.php/staging_table
Write to the Master (or, if allowed by the cluster, any of the Masters).


For the web side:


Have multiple servers with Apache / nginx / whatever receiving the requests.
Send the requests to the Slave(s) (or nodes).
Use round-robin (if there is more than one server for reading).


Other things:


300% CPU is high.  Let's see the worst offender, plus SHOW CREATE TABLE.
Your dataset will probably be very large, so shrink datatypes where practical, and normalize where appropriate.  (The above link has more on normalizing.)
So far, a single Master seems to be adequate, hence any of the replication or clustering options is still viable.
All writes are performed on all servers.  This puts a cap on how much you can scale.  The only way to go beyond that is via "sharding".
Read scaling can be achieved by adding more Slaves, virtually without limit.  This applies to all flavors of replication/clustering.
Indexing -- Use FULLTEXT for searching for "words"; use regular INDEXes where appropriate.
Since neither FULLTEXT nor INDEX handles "model numbers" and "synonyms", you may need to sanitize the data as it is inserted.