0

I am working with Mule ESB and instead of using Mule Management Console (MMC). I just want to load balance so that if I am exposing my Mule ESB as a Service so in that case I don't want to use load balancer to balance my Mule ESB , because once the request will come Load Balancer, it is the single point of failure in case if it is down. So I just need a use case how to Expose Mule as a Service with Optimized Load Balancing without using MMC (Mule Management Console).

Víctor Romero
  • 5,107
  • 2
  • 22
  • 32
Utsav
  • 1,593
  • 4
  • 22
  • 46

2 Answers2

1

For load balancing incoming HTTP request, over multiple Mule instances, you will need a external loadbalancer. Mule ESB Enterprise Edition nor MMC will help you with that. You can use a commercial one, such as a F5 BIP-IP, or setup a HAProxy. To avoid the loadbalancer to be a single point of failure you can setup a redundant HAProxy.

For JMS make sure to setup a external message broker cluster and connect to it using the normal jms:inbound-endpoint that way Mule will act as a competing consumer and you will achieve load balancing of messages.

I would also advice you to have a look at "MuleSoft Blueprint: Load Balancing Mule for Scalability and Availability" that covers this. It is a bit dated but most of the information in there is still valid.

Pontus Ullgren
  • 697
  • 6
  • 24
0

It's unclear what transport are you using, anyhow you have just limited number of options.

  • Use Mule EE clustering feature for the VM transport.
  • Use a load balancer
  • Use a transport that support competing consumers like JMS or AMQP.

Could you provide a more detailed explanation of you deployment so I can provide more extact info?

Víctor Romero
  • 5,107
  • 2
  • 22
  • 32
  • I am exposing one rest service that is putting data in queues and then that queues are consumed by mule with the help of JMS Transport. So here i don't want to use rest service on the top of the mule , instead of that i want to expose Mule directly with JMS , REST and many different transport , in that case how to load balance mule without using MMC. I hope questions is clear to you – Utsav Jan 07 '15 at 14:12
  • If Mule is listening to a JMS queue and your integration has no state, you need no special clustering feature as JMS provides the [competing consumers](http://www.eaipatterns.com/CompetingConsumers.html) pattern. – Víctor Romero Jan 07 '15 at 14:35
  • 1
    The short asnwer is inbound-endpoints with jms do not need load balancing at all. Http endpoints need a load balancer no matter which version of Mule you use. – Víctor Romero Jan 08 '15 at 11:42