I'm using Neo4j Causal Cluster consist of 3 core servers and they are hosted on AWS EC2 servers.
Details of the cluster:
Neo4j Version: Neo4j Enterprise 4.3.6
URI scheme I used to connect: neo4j://[Multivalue DNS Name]
EC2 Type: C5.2xLarge (8vCPUs, 16 GiB of Memory)
After performing load tests (which only contained read operations) on our application we observed that only the CPU Utilization of the Leader server of the cluster is reaching its maximum and two follower servers don't have any significant variations in resource utilization.
I'd like to know how can I distribute the Read operations among all three servers(or two follower servers) in the cluster.
How is your client behaving?
See the section on "Autocommit transactions" in our driver manual; a common error that causes the problem you're reporting is that the client does autocommit transactions rather than using explicit read/write transactions as it should.
When you use autocommit transactions, because the driver doesn't know whether you're doing a read or a write, it routes everything to the leader.