?
Solved

Java Application Load Balancing & HA

Posted on 2003-03-20
9
Medium Priority
?
226 Views
Last Modified: 2010-03-31
I have written a network filter application which will filter some packets and forward to another host. It is quite similar to a HTTP proxy server.

The application is running very smooth. However, i need to do some changes so that i can be run in load balancing and high availability.

In this case, i think there are at least 2 JVM will be created. How can i share the information in my program, for example, i have used a Hasttable to store some rule of the filter which are updated dynamically according to the incoming packet.

What can I do and how can i do that?

Thank you very much.
0
Comment
Question by:matchz
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
9 Comments
 
LVL 9

Accepted Solution

by:
Ovi earned 1000 total points
ID: 8173192
If you are speacking in terms of multiple JVM's, the solution is multicasting ..., make every application instance to listen on a special multicasting port. The application will contain two parts: emiter - will broadcast to opened instances
                   receiver - will receive broadcasted packages.
The receiver should ebe smart enough to know which packages are sent by it's own application emiter and which by other application instances. To solve this, the emiter should broadcast a unique id among with real data ...
0
 
LVL 9

Expert Comment

by:doronb
ID: 8191382
I suppose you can use RMI in order to connect your multiple JVM's. A good idea would be to check Sun's RMI tutorials: http://java.sun.com/docs/books/tutorial/rmi/index.html

Hope this helps,
Doron
0
 

Author Comment

by:matchz
ID: 8200755
Actually, my idea is a little bit different to RMI. RMI is about a JVM to invoke methods in another JVM. However, I would like the end-users to run an application which supports clustering. The performance of the applications can be increased by the number of hardwares.
0
Get real performance insights from real users

Key features:
- Total Pages Views and Load times
- Top Pages Viewed and Load Times
- Real Time Site Page Build Performance
- Users’ Browser and Platform Performance
- Geographic User Breakdown
- And more

 
LVL 9

Expert Comment

by:Ovi
ID: 8200796
What about advanced app specific multicasting?
0
 

Author Comment

by:matchz
ID: 8203836
Hi Ovi, what is advanced app. specific multicasting?
I have no idea about it, would you please feel free to give more information about that?
0
 
LVL 9

Expert Comment

by:Ovi
ID: 8208389
What I mean was to implement a specific type of multicasting protocol based on your application requirements. I refer only to how you send packages to others, what they means, how they must react on a specific multicast command and stuff like that.
0
 
LVL 9

Expert Comment

by:doronb
ID: 8208680
RMI is about distributed computing in Java. JVM's expose objects that render services, it doesn't matter where the JVM is running on. RMI simply hides the communication layer that you would otherwise have to implement yourself using Sockets.

Multicasting is the ability to join a group of processes that connect with one-another through the group's multicast IP. (Clustering with Multicasting would mean that all the processes join a group IP (e.g. 239.25.25.25:6789) and whenever any process broadcasts to this IP, all group memebers can get the message)

Hope this helps,
Doron
0
 

Author Comment

by:matchz
ID: 8244652
I will try to work out on this idea.
Thank you very much.
0
 
LVL 9

Expert Comment

by:Ovi
ID: 8244769
Me too.
0

Featured Post

[Webinar] Lessons on Recovering from Petya

Skyport is working hard to help customers recover from recent attacks, like the Petya worm. This work has brought to light some important lessons. New malware attacks like this can take down your entire environment. Learn from others mistakes on how to prevent Petya like worms.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
The viewer will learn how to implement Singleton Design Pattern in Java.
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
Suggested Courses
Course of the Month10 days, 1 hour left to enroll

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question