Can the "Internet" redirect connection requests between remote servers when it is offline?

I am running an OLTP system that allows SSL connections over the Internet across multiple sites. I would like to find an effective solution how to transparently and automatically redirect transactional connections when one site is down. Bonus points for reviewing a site when it is actually unavailable or unable to connect, but simply lags or overloads or sends bad results.

For example, the user's system will attach to www.abcdef.com or 123.234.56.7 and will actually be redirected to one.abcdef.com/two.abcdef.com or 99.5.2.1/68.96.79.1 depending on which site is behind work. This is very similar to load balancing, but primarily how to use the network to avoid a single point of failure, not how to distribute work between servers.

User benefits: (1) they only need to know one URL or one IP address to connect, and (2) their transactions run across several different failure scenarios. For example, if a public network near one of the sites goes down, or fails, if the local loop for that ISP fails, if internal routers or servers fail. Of course, transactions will still fail if the problem is close to the user.

+1


source to share


3 answers


I asked a similar question once many years ago and the answer has a lot to do with how much money you are willing to spend.

There are hardware solutions, devices whose sole purpose is to sit in front of your servers A and B so that when server A exits, it stops sending requests to it and uses server B. This has the advantage of hardware performance and reliability.

It also helps you know the relative reliability of all the components in your system. If this is one of the components you are worried about, then you can make that part redundant and design the rest of the system to knock it from one to the other. The reason I say this is because there is no perfect answer.

Unless you are of course trying to build something like a credit card processing system or other similar financial transaction system where money is not an object: P



The most common scenario is an error install where A fails before B.

If you are looking for a "perfect" failure, you can implement a system between client and A and B that will automatically retry, etc. and return a response even if the client does not see even one error. But this could be a bottleneck issue and THEN you have a problem with another system that may or may not fail. And now we go back to the second paragraph .... :)

This is not a bad question, but it's best to be aware of what you are trying to do (and if you are already locked into a specific implementation).

+1


source


I think maybe one way to do this is to have redundant front-end servers that sit behind a load balancer. This front-end system simply responds to requests, redirecting them to real servers that are distributed in different places. Your front-end server can periodically check to see if other servers are found, and if not, take that server out. Excessive fronts behind the load balancer (or perhaps only in the cluster) prevents it from becoming a single point of failure. You can also have multiple interfaces using a round robin DNS solution located in different locations. You probably need to consider this architecture in your application.



You probably also want to have redundant network links to all sites.

0


source


ifstated can be used as an interface with pf (on OpenBSD and FreeBSD) to redirect traffic to online servers.

man ifstated

Blockquote ifstated - interface state

daemon The ifstated daemon runs commands in response to network state changes, which it detects by monitoring the state of the interface interface or running exter tests. For example, it can be used with carp (4) to change how services work, or to ensure that carp (4) interfaces stay in sync, or pf (4)      to check for server or channel availability and change the translation or routing of a rule. The following options are possible:

0


source







All Articles