Mule runtime high availability (ha) cluster overview
-
Upload
cong-thanh-nguyen -
Category
Technology
-
view
135 -
download
1
Transcript of Mule runtime high availability (ha) cluster overview
Mule Runtime High Availability (HA) Cluster
Overview
What is cluster ?
• A set of Mule runtimes that acts as a unit• A virtual server composed of multiple nodes
The Benefits of Clustering
• Clustering Mule runtimes ensures high system availability
• Assume the workload and continue to process existing events and messages
The Benefits of Clustering
• If one node fails, the other available nodes pick up the work of the failing node
The Benefits of Clustering
• Improve performance and scalability• Support more users or improve application
performance by sharing the workload across multiple nodes or by adding nodes to the cluster
The Benefits of Clustering
Clustering Mule runtimes benefits
• Automatic coordination of access to resources • Automatic load balancing of processing within
a cluster• Cluster lifecycle management and control• Cluster and node performance monitoring• Raised alerts
Concurrency Issues Solved by Clusters
• File based transports• Multicast transport• JMS Topics• JMS request-reply/request-response• Idempotent-redelivery-policy• Salesforce streaming API
About Clustering
About Queues
• Set up a VM queue explicitly to load balance across Mule runtimes (nodes)
• Cluster can process a single message on multiple nodes as it passes through the VM endpoints in the application flow
About Queues
About High-Reliability Applications
• Zero tolerance for message loss• A reliable underlying enterprise service bus • Highly reliable individual connections
Cluster Support for Transports• Mule transports are supported within a cluster• Mule runtimes support three basic types of transports:
– Socket-based transports read input sent to network sockets that Mule owns
– Listener-based transports read data using a protocol that fully supports concurrent multiple accessors
– Resource-based transports read data from a resource that allows multiple concurrent accessors
Cluster Support for Transports
• Three basic types of transports are supported in clusters in different ways:– Socket-based– Listener-based– Resource-based
Clustering and Reliable Applications
• Reliability needs to extend to individual connections• Reliability Patterns give you the tools to build fully
reliable applications in your clusters• Mule’s built-in support for transactional transports
enables reliable messaging for applications that use these transports
Clustering and Networking• All nodes of a cluster should be located on the same LAN• Implementing a cluster with nodes across geographically
separated locations• Linking cluster nodes through a WAN network introduces
many possible points of failure such as external routers and firewalls
• Ensuring that all cluster nodes reside on the same LAN is the best practice to lower the possibility of network interruptions and unintended consequences
Clustering and Load Balancing
• Nginx, an open-source HTTP server and reverse proxy: use nginx’s HttpUpstreamModule for HTTP(S) load balancing or Linode Library entry Use Nginx for Proxy Services and Software Load Balancing
Clustering and Load Balancing
• The Apache web server: – Used as an HTTP(S) load balancer– Using the Apache web server for load balancing in
the description of the Apache Module mod_proxy_balance
Clustering for High Performance
• Setting the performance profile has two effects:– It disables distributed queues, using local queues instead
to prevent data serialization/deserialization and distribution in the shared data grid
– Implements the object store without backups, to avoid replication
Clustering for High Performance• To configure the performance profile at the container
level, add to mule-cluster.properties or to the system properties from the command line or wrapper.conf
Clustering for High Performance
Question and answer