I’m hoping for a high level discussion of this problem I know is quickly approaching my application.
I have a server that binds on a specific port and manages TCP Sockets from my clients. I know that it is common practice to use VMWare to virtualize servers and run multiple servers at once.
How can a single server design be changed to support multiple servers?
Multiple servers can’t bind to the same port. If I had to guess I would say a proxy server binds to the port and then sends connections off to the other servers to be handled as if it was still a single server application.
I’m wondering what options there are and what are the common practices for solving this problem?
Thanks in advance!
Each VMWare machine is essentially a standalone PC, as far as the OS running inside a VM is concerned. Like on a real PC, a server can bind to the same port on different IPs, and each running VM can have its own IP on the virtualized network. VMWare has a built-in DHCP router that manages the IPs and network traffic of its running VMs. Each VM can have its own real independant IP on the Host machine’s actual network, or they can share the Host’s IP via VMWare’s built-in router. The OS in each VM doesn’t know the difference. Go ahead and bind your server to the same port on each running VM, it will work fine. VMWare will handle the packet routing as needed.