This is far from a complete answer, too many details, and I could write an entire essay about this issue, like many others, however, since I do not have such time to save money, I will add a comment about what I see.
Now I want to add a load balancer to the database so that the database works fine even with a huge load of traffic at a time.
Replica sets are not designed for such work. If you want to load balance, you are probably looking for shards that will allow you to do this.
Replication is designed to automatically recover from a failure.
In this case, I can read the database balance by adding the slaveOK configuration to replicaSet.
Since in order to stay up to date, your members will receive as many options as the main one, it seems that this may not help much.
In fact, instead of having one server with many connections, you have many connections on many servers, for the next queues for outdated data, because the sequence of elements is possible, not immediate, unlike ACID technologies, however, stating that they end up matching 32-odd ms, which means they aren't lagging enough to provide decent bandwidth if the primary load.
Since reading ARE at the same time, you will get the same speed, regardless of whether you are reading from primary or secondary. I suppose you could delay the slave to create an OP pause, but that will return massive data back.
Not to mention the fact that MongoDB is not a multimaster as such, you can write only one node, which makes slaveOK not the most useful setting in the world, and I have seen many times when 10gen itself recommends you use enveloping this setting.
Option 2: We can create a master-master configuration in mongodb,
To do this, you will need your own encoding. At this point, you may consider using a database that supports http://en.wikipedia.org/wiki/Multi-master_replication
This is because the speed you are looking for is most likely not actually written to the recording, as I discussed above.
Option 1: I have to outline the database and save each shard in a separate instance.
This is the recommended method, but you have found a reservation with it. Unfortunately, it is not decided that replication with several masters should be resolved, however replication with several masters adds its own plague rat ship to Europe itself, and I highly recommend that you do some serious research before you think about MongoDB currently cannot satisfy your needs.
You might not worry anything, since the fsync queue is designed to eliminate the IO bottleneck that slows down your records, as it would in SQL, and reading is parallel, so if you plan your schema and working set correctly, you should be in able to get a huge amount of OP.
In fact, there is a question related to us from a 10-year-old employee who is very good to read: https://stackoverflow.com/a/166646/ and it shows how much bandwidth MongoDB can reach under load.
A new document-level lock will soon grow, which is already in the dev branch.