Server A, server B and server C have the same file of ice . How the Glacier2 knows that the client's request is for Server A, Server B or Server C ?
I've answer a similar question here.
In short, the client uses proxies which embeds the endpoints of the server A, B or C. When you set a default router proxy on the Ice communicator, the client will inform Glacier2 that it wants to talk to server A and it will provide to Glacier2 the endpoints of server A. Glacier2 is then able to route the requests to the correct server.
You could give this a try with the Glacier2 callback demo for example. You could modify the demo to run 3 servers on three different endpoints and change the client to talk to one of the 3 servers.
Thanks for your answer.