The following sections discuss various topologies, both
clustered and non-clustered, that you can employ. For additional
information about configuring your application server in a cluster,
go to one of the following websites, as applicable to your application
server:
2.4.1 Combined web, application, and database serversThis topology consists of a web server, an application
server, and a database server on the same node. This topology is
the simplest one and must be used for development only.
2.4.2 Combined web and application servers with separate database serverThis topology can be considered for production in case
the load on the user interface (including the web tier) is minimal,
with a small number of users.
Combining the web and application servers means that all Enterprise JavaBeans™ (EJB) look-ups are local, and therefore
reduces the overhead of doing a remote look-up. Also, this topology
reduces the network overhead of a round trip between the web tier
and the application tier.
However, with both servers on the same node, if the web tier
is compromised, both tiers are compromised. If the web tier experiences
a heavy load, the application server processing is affected and
vice versa. User response time is usually affected in situations
when users need to wait a significant amount of time to get a page
back due to all server resources (that is, CPU and/or memory) being consumed
by the application server.
2.4.3 Single web server with combined application and database serverThe simplest topology that should be considered for a production
environment is a web server and combined application server with
a database server. Use this topology only if you are sure that your
database load will be minimal. In this scenario, the web server
is providing a redirection to the application server. The advantages
of this topology are low cost, low complexity, and no need for load balancing.
The disadvantages of this topology are little redundancy, low scalability,
inability to perform updates and upgrades, and possible low performance
due to too many CPU processes.
2.4.4 Separate web, application, and database serversThis topology is the most common in production systems
because it allows allocation of separate resources to each of the
tiers. In this case, the web server acts as a proxy to the web tier
on the application server that hosts the web components. This level
of indirection provides additional security by securing the application
server even if the web server is compromised.
2.4.5 Adding additional web serversYou can add additional web servers for scalability and
failover. When using multiple web servers, the WebLogic/WebSphere
HTTP plug-in configuration file must be applied to each web server.
Failure to do so after introducing a new application will likely
cause a “404 File Not Found” error to occur when a user tries to
access the web application.
2.4.6 Adding additional application serversThis topology is used in most large-scale production systems
where the application servers are clustered to provide high availability
and, based on the topology, failover and load balancing.
Clustering application servers has these benefits:
You can use cheaper hardware configurations and still
achieve higher performance
You can upgrade software on servers without down time
Provides higher availability (that is, if one server fails,
the other nodes in the cluster pick up the processing)
Provides the ability to leverage load-balancing algorithms
on the web server (by using load balancers) as well as on the EJB
tier for processing requests
LiveCycle components are typically CPU-bound. As a result, performance
gains are better achieved by adding more application servers than
by adding more memory or disk space to an existing server.
2.4.7 Multiple JVMsVertical scaling of multiple JVMs offers the following
advantages:
Increased processing power efficiency: An instance of
an application server runs in a single JVM process. However, the
inherent concurrency limitations of a JVM process prevent it from
fully using the memory and processing power of multi-CPU systems.
Creating additional JVM processes provides multiple thread pools,
each corresponding to the JVM process that is associated with each
application server process. This correspondence avoids concurrency
limitations and lets the application server use the full processing
power of the computer.
Load balancing: Vertical scaling topologies can use the
WebLogic Server or WebSphere Application Server workload management
facility.
Process failover: A vertical scaling topology also provides
failover support among application server cluster members. If one
application server instance goes offline, the other instances on
the computer continue to process client requests.
|
|
|