471,089 Members | 1,116 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,089 software developers and data experts.

Routing tcp/ip requests, load balancing

Hi,

I have a legacy server application that communicates with the clients
in tcp/ip and is installed on one server.
Due to heavy load on that server and in order to provide my
organization with a high availability solution, I wish to install that
app on several computers, and have the clients connect to one machine
which will redirect the requests to one of the app servers. Having part
of the clients connect to one server and another part of the clients to
another by setting a fixed server name on the clients is not an option
because I can't change the client code and because the client app is
installed on many remote machines.

So what I want to do is write an application which will act like the
server application and receive requests, and then redirect them to one
of the real server application. Question is - how do I do it?

All comments appreciated!

Oct 8 '06 #1
2 3338
Depends on the current traffic! If the server is simple, a replacement
could simply act as a proxy to the actual servers, either at random
(stateless), or "sticky" (stateful), by either remembering
who-went-where, or by taking a hash of the caller ID and usign that to
pick the same server each time. Thinking of it as a proxy, there is no
need for this code to know *anything* (or perhaps, little) about the
end-server app. Try googling for writing proxy servers in C#?

Alternatively, you could use dedicated clustering solutions, e.g.

http://www.f5.com/products/bigip/
or
http://technet2.microsoft.com/Window....mspx?mfr=true

Marc

Oct 8 '06 #2
Hi Marc,

Thanks for your prompt reply.

What if I only want redirection without a proxy? A proxy would will be
my bottleneck - it will balance the load between the servers but if the
data passes through it all the time, I will still have one server
bottle neck.

I'm still looking for a simple and relatively cheap solution (rather
than expensive hardware + expensive OS solutions)

What do you reckon?
Marc Gravell wrote:
Depends on the current traffic! If the server is simple, a replacement
could simply act as a proxy to the actual servers, either at random
(stateless), or "sticky" (stateful), by either remembering
who-went-where, or by taking a hash of the caller ID and usign that to
pick the same server each time. Thinking of it as a proxy, there is no
need for this code to know *anything* (or perhaps, little) about the
end-server app. Try googling for writing proxy servers in C#?

Alternatively, you could use dedicated clustering solutions, e.g.

http://www.f5.com/products/bigip/
or
http://technet2.microsoft.com/Window....mspx?mfr=true

Marc
Oct 8 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Shabam | last post: by
2 posts views Thread by Christopher D. Wiederspan | last post: by
6 posts views Thread by Andrew Robinson | last post: by
2 posts views Thread by RahulBose | last post: by
1 post views Thread by m.a | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.