SlideShare a Scribd company logo
Mule High Availability (HA)
Cluster
By
Achyuta Laxmi
Overview
 Introduction
 About Clustering
 About Queues
 About High-Reliability Applications
 Cluster Support for Transports
 Clustering and Reliable Applications
 Clustering and Networking
 Clustering and Load Balancing
 Clustering for High Performance
 Best Practices
 Conclusion
Introduction
A cluster is a set of Mule instances that acts as a unit. In other words, a
cluster is a virtual server composed of multiple nodes. The servers in a
cluster communicate and share information through a distributed shared
memory grid. This means that the data is replicated across memory in
different physical machines.
Cont.…
About Clustering
A Mule ESB Cluster consists of two to eight Mule ESB server instances, or nodes, grouped together and
treated as a single unit. Thus, you can deploy, monitor, or stop all the nodes in a cluster as if they were a
single Mule server.
Mule uses an active-active model to cluster servers, rather than an active-passive model.
In an active-passive model, one server in a cluster acts as the primary, or active node, while the others
are secondary, or passive nodes. The application in such a model runs on the primary server, and only
ever runs on the secondary server if the first one fails. In this model, the processing power of the
secondary node(s) is mostly wasted in passive waiting for the primary node to fail.
In an active-active model, no one server in the cluster acts as the primary server; all servers in the cluster
support the application. This application in this model runs on all the servers, even splitting apart
message processing between nodes to expedite processing across nodes.
About Queues
You can set up a VM queue explicitly to load balance across nodes. Thus, if your
entire application flow contains a sequence of child flows, Mule can assign each
successive child flow to whichever node happens to be available at the time.
Potentially, Mule can process a single message on multiple nodes as it passes
through the entire application flow, as illustrated in next figure:
About High-Reliability Applications
A high-reliability application must feature the following:
1. zero tolerance for message loss
2. a reliable underlying enterprise service bus (ESB)
3. highly reliable individual connections
Cluster Support for Transports
Mule supports three basic types of transports:
1. Socket-based transports read input sent to network sockets that Mule owns.
Examples include TCP, UDP, and HTTP[S].
2. listener-based transports read data using a protocol that fully supports
concurrent multiple accessors. Examples include JMS and VM.
3. resource-based transports read data from a resource that allows multiple
concurrent accessors, but does not natively coordinate their use of the resource.
For instance, suppose multiple programs are processing files in the same shared
directory by reading, processing, and then deleting the files. These programs
must use an explicit, application-level locking strategy to prevent the same file
from being processed more than once. Examples of resource-based transports
include File, FTP, SFTP, E-mail, and JDBC.
Clustering and Reliable Applications
High-reliability applications (ones that have zero tolerance for message loss) not only
require the underlying ESB to be reliable, but that reliability needs to extend to
individual connections. Reliability Patterns give you the tools to build fully reliable
applications in your clusters.
Clustering and Networking
To ensure reliable connectivity between cluster nodes, all nodes of a cluster
should be located on the same LAN. Implementing a cluster with nodes across
geographically separated locations, such as different datacenters connected
through a VPN, is possible but not recommended and not supported.
Clustering and Load Balancing
When Mule clusters are used to serve TCP requests (where TCP includes
SSL/TLS, UDP, Multicast, HTTP, and HTTPS), some load balancing is needed to
distribute the requests among the clustered instances. There are various
software load balancers available.
Clustering for High Performance
If high performance is your primary goal (rather than reliability), you can configure a
Mule cluster or an individual application for maximum performance using a
performance profile.
Setting the performance profile has two effects:
1. It disables distributed queues, using local queues instead to prevent data
serialization/deserialization and distribution in the shared data grid.
2. It implements the object store without backups, to avoid replication.
Best Practices
There are a number of recommended practices related to clustering. These include:
• As much as possible, organize your application into a series of steps where each step
moves the message from one transactional store to another.
• If your application processes messages from a non-transactional transport, use
areliability pattern to move them to a transactional store such as a VM or JMS store.
• Use transactions to process messages from a transactional transport. This ensures that
if an error is encountered, the message will be reprocessed.
• Use distributed stores such as those used with the VM or JMS transport – these stores
are available to an entire cluster. This is preferable to the non-distributed stores used
with transports such as File, FTP, and JDBC – these stores are read by a single node at a
time.
• Use the VM transport to get optimal performance. Use the JMS transport for
applications where data needs to be saved after the entire cluster exits.
• Create the number of nodes within a cluster that best meets your needs.
• Implement reliability patterns to create high reliability applications.
Conclusion
• Currently you can create a cluster consisting of at least two servers and up to a
maximum of eight. However, each server must run in a different physical (or
virtual) machine.
• To maintain synchronization between the nodes in the cluster, Mule HA requires a
reliable network connection between servers.
• You must keep the following ports open in order to set up a Mule cluster: port
5701 and port 54327.
• Because new cluster member discovery is performed using multicast, you need to
enable the multicast IP: 224.2.2.3
References:
https://docs.mulesoft.com/mule-user-guide/v/3.6/mule-high-availability-ha-clusters
Thank you

More Related Content

What's hot

Mule technology
Mule technologyMule technology
Mule technology
Praneethchampion
 
Vm component in mule demo
Vm component in mule demoVm component in mule demo
Vm component in mule demo
Sudha Ch
 
How muleworks
How muleworksHow muleworks
How muleworks
Khadhar Koneti
 
Mule esb
Mule esbMule esb
Mule esb
charan teja R
 
Introduce Mule
Introduce MuleIntroduce Mule
Introduce Mule
mha4
 
Mule esb
Mule esbMule esb
Mule esb
Prabhat gangwar
 
Mulesoft idempotent Message Filter
Mulesoft idempotent Message FilterMulesoft idempotent Message Filter
Mulesoft idempotent Message Filter
kumar gaurav
 
Mule esb overview
Mule esb overviewMule esb overview
Mule esb overview
Swami Satish
 
Mule soa
Mule soaMule soa
Mule soa
Khasim Saheb
 
Mule ESB
Mule ESBMule ESB
Mule ESBniravn
 
MuleEsb
MuleEsbMuleEsb
MuleEsb
Mohammed625
 
Mule high availability
Mule high availabilityMule high availability
Mule high availability
Son Nguyen
 
Mule soa
Mule soaMule soa
Mule soa
D.Rajesh Kumar
 
Mule esb handling errors
Mule esb handling errorsMule esb handling errors
Mule esb handling errors
Naresh Naidu
 
Cloud hub architecture
Cloud hub architectureCloud hub architecture
Cloud hub architecture
Shanky Gupta
 
WebService with VM Mule
WebService with VM MuleWebService with VM Mule
WebService with VM Mule
irfan1008
 

What's hot (16)

Mule technology
Mule technologyMule technology
Mule technology
 
Vm component in mule demo
Vm component in mule demoVm component in mule demo
Vm component in mule demo
 
How muleworks
How muleworksHow muleworks
How muleworks
 
Mule esb
Mule esbMule esb
Mule esb
 
Introduce Mule
Introduce MuleIntroduce Mule
Introduce Mule
 
Mule esb
Mule esbMule esb
Mule esb
 
Mulesoft idempotent Message Filter
Mulesoft idempotent Message FilterMulesoft idempotent Message Filter
Mulesoft idempotent Message Filter
 
Mule esb overview
Mule esb overviewMule esb overview
Mule esb overview
 
Mule soa
Mule soaMule soa
Mule soa
 
Mule ESB
Mule ESBMule ESB
Mule ESB
 
MuleEsb
MuleEsbMuleEsb
MuleEsb
 
Mule high availability
Mule high availabilityMule high availability
Mule high availability
 
Mule soa
Mule soaMule soa
Mule soa
 
Mule esb handling errors
Mule esb handling errorsMule esb handling errors
Mule esb handling errors
 
Cloud hub architecture
Cloud hub architectureCloud hub architecture
Cloud hub architecture
 
WebService with VM Mule
WebService with VM MuleWebService with VM Mule
WebService with VM Mule
 

Similar to Mule high availability (ha) cluster

Queues and Mule Transport Mechanisms
Queues and Mule Transport MechanismsQueues and Mule Transport Mechanisms
Queues and Mule Transport Mechanisms
Harish43
 
Clustering concepts
Clustering conceptsClustering concepts
Clustering concepts
Harish43
 
Clustering concepts
Clustering conceptsClustering concepts
Clustering concepts
bapiraju
 
Clustering concepts
Clustering conceptsClustering concepts
Clustering concepts
harika thamishetti
 
Mule esb presentation 2015
Mule esb presentation 2015Mule esb presentation 2015
Mule esb presentation 2015
Nagesh Penumarthy
 
MuleSoft Surat Virtual Meetup#26 - Implementing Hybrid MuleSoft Runtime - Any...
MuleSoft Surat Virtual Meetup#26 - Implementing Hybrid MuleSoft Runtime - Any...MuleSoft Surat Virtual Meetup#26 - Implementing Hybrid MuleSoft Runtime - Any...
MuleSoft Surat Virtual Meetup#26 - Implementing Hybrid MuleSoft Runtime - Any...
Jitendra Bafna
 
Cluster computing pptl (2)
Cluster computing pptl (2)Cluster computing pptl (2)
Cluster computing pptl (2)
Rohit Jain
 
Clustercomputingpptl2 120204125126-phpapp01
Clustercomputingpptl2 120204125126-phpapp01Clustercomputingpptl2 120204125126-phpapp01
Clustercomputingpptl2 120204125126-phpapp01Ankit Soni
 
MuleSoft Surat Live Demonstration Virtual Meetup#2 - Customer Hosted Mule Run...
MuleSoft Surat Live Demonstration Virtual Meetup#2 - Customer Hosted Mule Run...MuleSoft Surat Live Demonstration Virtual Meetup#2 - Customer Hosted Mule Run...
MuleSoft Surat Live Demonstration Virtual Meetup#2 - Customer Hosted Mule Run...
Jitendra Bafna
 
Elements in a mule flow
Elements in a mule flowElements in a mule flow
Elements in a mule flow
Sindhu VL
 
Mule introduction
Mule introductionMule introduction
Mule introduction
kiranvanga
 
Cluster computing
Cluster computingCluster computing
Cluster computing
reddivarihareesh
 
Elements in a muleflow
Elements in a muleflowElements in a muleflow
Elements in a muleflow
Thang Loi
 
Mule esb
Mule esbMule esb
Mule esb
chetan singhal
 
Mule ESB
Mule ESBMule ESB
Mule technology
Mule technologyMule technology
Mule technology
Mohammed625
 
Mule technology
Mule technologyMule technology
Mule technology
F K
 
Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841
ppts123456
 
Mule ESB
Mule ESBMule ESB
Mule ESB
Bui Kiet
 
What is Mule ESB
What is Mule ESB What is Mule ESB
What is Mule ESB
Nam Le Dinh
 

Similar to Mule high availability (ha) cluster (20)

Queues and Mule Transport Mechanisms
Queues and Mule Transport MechanismsQueues and Mule Transport Mechanisms
Queues and Mule Transport Mechanisms
 
Clustering concepts
Clustering conceptsClustering concepts
Clustering concepts
 
Clustering concepts
Clustering conceptsClustering concepts
Clustering concepts
 
Clustering concepts
Clustering conceptsClustering concepts
Clustering concepts
 
Mule esb presentation 2015
Mule esb presentation 2015Mule esb presentation 2015
Mule esb presentation 2015
 
MuleSoft Surat Virtual Meetup#26 - Implementing Hybrid MuleSoft Runtime - Any...
MuleSoft Surat Virtual Meetup#26 - Implementing Hybrid MuleSoft Runtime - Any...MuleSoft Surat Virtual Meetup#26 - Implementing Hybrid MuleSoft Runtime - Any...
MuleSoft Surat Virtual Meetup#26 - Implementing Hybrid MuleSoft Runtime - Any...
 
Cluster computing pptl (2)
Cluster computing pptl (2)Cluster computing pptl (2)
Cluster computing pptl (2)
 
Clustercomputingpptl2 120204125126-phpapp01
Clustercomputingpptl2 120204125126-phpapp01Clustercomputingpptl2 120204125126-phpapp01
Clustercomputingpptl2 120204125126-phpapp01
 
MuleSoft Surat Live Demonstration Virtual Meetup#2 - Customer Hosted Mule Run...
MuleSoft Surat Live Demonstration Virtual Meetup#2 - Customer Hosted Mule Run...MuleSoft Surat Live Demonstration Virtual Meetup#2 - Customer Hosted Mule Run...
MuleSoft Surat Live Demonstration Virtual Meetup#2 - Customer Hosted Mule Run...
 
Elements in a mule flow
Elements in a mule flowElements in a mule flow
Elements in a mule flow
 
Mule introduction
Mule introductionMule introduction
Mule introduction
 
Cluster computing
Cluster computingCluster computing
Cluster computing
 
Elements in a muleflow
Elements in a muleflowElements in a muleflow
Elements in a muleflow
 
Mule esb
Mule esbMule esb
Mule esb
 
Mule ESB
Mule ESBMule ESB
Mule ESB
 
Mule technology
Mule technologyMule technology
Mule technology
 
Mule technology
Mule technologyMule technology
Mule technology
 
Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841
 
Mule ESB
Mule ESBMule ESB
Mule ESB
 
What is Mule ESB
What is Mule ESB What is Mule ESB
What is Mule ESB
 

More from Achyuta Lakshmi

Anypoint platform for API's glossary
Anypoint platform for API's glossaryAnypoint platform for API's glossary
Anypoint platform for API's glossary
Achyuta Lakshmi
 
The anypoint platform for API's
The anypoint platform for API'sThe anypoint platform for API's
The anypoint platform for API's
Achyuta Lakshmi
 
Anypoint b2 b
Anypoint b2 bAnypoint b2 b
Anypoint b2 b
Achyuta Lakshmi
 
Mule management console
Mule management consoleMule management console
Mule management console
Achyuta Lakshmi
 
Creating a custom connector in mule
Creating a custom connector in muleCreating a custom connector in mule
Creating a custom connector in mule
Achyuta Lakshmi
 
Creating a custom connector in mule
Creating a custom connector in muleCreating a custom connector in mule
Creating a custom connector in mule
Achyuta Lakshmi
 
Introduction to es bs mule
Introduction to es bs   muleIntroduction to es bs   mule
Introduction to es bs mule
Achyuta Lakshmi
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
Achyuta Lakshmi
 

More from Achyuta Lakshmi (8)

Anypoint platform for API's glossary
Anypoint platform for API's glossaryAnypoint platform for API's glossary
Anypoint platform for API's glossary
 
The anypoint platform for API's
The anypoint platform for API'sThe anypoint platform for API's
The anypoint platform for API's
 
Anypoint b2 b
Anypoint b2 bAnypoint b2 b
Anypoint b2 b
 
Mule management console
Mule management consoleMule management console
Mule management console
 
Creating a custom connector in mule
Creating a custom connector in muleCreating a custom connector in mule
Creating a custom connector in mule
 
Creating a custom connector in mule
Creating a custom connector in muleCreating a custom connector in mule
Creating a custom connector in mule
 
Introduction to es bs mule
Introduction to es bs   muleIntroduction to es bs   mule
Introduction to es bs mule
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
 

Recently uploaded

GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 

Recently uploaded (20)

GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 

Mule high availability (ha) cluster

  • 1. Mule High Availability (HA) Cluster By Achyuta Laxmi
  • 2. Overview  Introduction  About Clustering  About Queues  About High-Reliability Applications  Cluster Support for Transports  Clustering and Reliable Applications  Clustering and Networking  Clustering and Load Balancing  Clustering for High Performance  Best Practices  Conclusion
  • 3. Introduction A cluster is a set of Mule instances that acts as a unit. In other words, a cluster is a virtual server composed of multiple nodes. The servers in a cluster communicate and share information through a distributed shared memory grid. This means that the data is replicated across memory in different physical machines. Cont.…
  • 4.
  • 5. About Clustering A Mule ESB Cluster consists of two to eight Mule ESB server instances, or nodes, grouped together and treated as a single unit. Thus, you can deploy, monitor, or stop all the nodes in a cluster as if they were a single Mule server. Mule uses an active-active model to cluster servers, rather than an active-passive model. In an active-passive model, one server in a cluster acts as the primary, or active node, while the others are secondary, or passive nodes. The application in such a model runs on the primary server, and only ever runs on the secondary server if the first one fails. In this model, the processing power of the secondary node(s) is mostly wasted in passive waiting for the primary node to fail. In an active-active model, no one server in the cluster acts as the primary server; all servers in the cluster support the application. This application in this model runs on all the servers, even splitting apart message processing between nodes to expedite processing across nodes.
  • 6. About Queues You can set up a VM queue explicitly to load balance across nodes. Thus, if your entire application flow contains a sequence of child flows, Mule can assign each successive child flow to whichever node happens to be available at the time. Potentially, Mule can process a single message on multiple nodes as it passes through the entire application flow, as illustrated in next figure:
  • 7.
  • 8. About High-Reliability Applications A high-reliability application must feature the following: 1. zero tolerance for message loss 2. a reliable underlying enterprise service bus (ESB) 3. highly reliable individual connections
  • 9. Cluster Support for Transports Mule supports three basic types of transports: 1. Socket-based transports read input sent to network sockets that Mule owns. Examples include TCP, UDP, and HTTP[S]. 2. listener-based transports read data using a protocol that fully supports concurrent multiple accessors. Examples include JMS and VM. 3. resource-based transports read data from a resource that allows multiple concurrent accessors, but does not natively coordinate their use of the resource. For instance, suppose multiple programs are processing files in the same shared directory by reading, processing, and then deleting the files. These programs must use an explicit, application-level locking strategy to prevent the same file from being processed more than once. Examples of resource-based transports include File, FTP, SFTP, E-mail, and JDBC.
  • 10. Clustering and Reliable Applications High-reliability applications (ones that have zero tolerance for message loss) not only require the underlying ESB to be reliable, but that reliability needs to extend to individual connections. Reliability Patterns give you the tools to build fully reliable applications in your clusters.
  • 11. Clustering and Networking To ensure reliable connectivity between cluster nodes, all nodes of a cluster should be located on the same LAN. Implementing a cluster with nodes across geographically separated locations, such as different datacenters connected through a VPN, is possible but not recommended and not supported.
  • 12. Clustering and Load Balancing When Mule clusters are used to serve TCP requests (where TCP includes SSL/TLS, UDP, Multicast, HTTP, and HTTPS), some load balancing is needed to distribute the requests among the clustered instances. There are various software load balancers available.
  • 13. Clustering for High Performance If high performance is your primary goal (rather than reliability), you can configure a Mule cluster or an individual application for maximum performance using a performance profile. Setting the performance profile has two effects: 1. It disables distributed queues, using local queues instead to prevent data serialization/deserialization and distribution in the shared data grid. 2. It implements the object store without backups, to avoid replication.
  • 14. Best Practices There are a number of recommended practices related to clustering. These include: • As much as possible, organize your application into a series of steps where each step moves the message from one transactional store to another. • If your application processes messages from a non-transactional transport, use areliability pattern to move them to a transactional store such as a VM or JMS store. • Use transactions to process messages from a transactional transport. This ensures that if an error is encountered, the message will be reprocessed. • Use distributed stores such as those used with the VM or JMS transport – these stores are available to an entire cluster. This is preferable to the non-distributed stores used with transports such as File, FTP, and JDBC – these stores are read by a single node at a time. • Use the VM transport to get optimal performance. Use the JMS transport for applications where data needs to be saved after the entire cluster exits. • Create the number of nodes within a cluster that best meets your needs. • Implement reliability patterns to create high reliability applications.
  • 15. Conclusion • Currently you can create a cluster consisting of at least two servers and up to a maximum of eight. However, each server must run in a different physical (or virtual) machine. • To maintain synchronization between the nodes in the cluster, Mule HA requires a reliable network connection between servers. • You must keep the following ports open in order to set up a Mule cluster: port 5701 and port 54327. • Because new cluster member discovery is performed using multicast, you need to enable the multicast IP: 224.2.2.3 References: https://docs.mulesoft.com/mule-user-guide/v/3.6/mule-high-availability-ha-clusters