问题
I am looking for some initial pointers on how to cluster a ServiceMix solution. Basically what I need is:
- having 2 (or more) ServiceMix instances serving my routing needs and sharing the load
- if one instance fails, other(s) continue to serve
- if the failed one is brought back to life, it joins the party
Searching for information confuses me since
- some references (eg. http://trenaman.blogspot.fi/2010/04/four-things-you-need-to-know-about-new.html) talk about "JBI cluster engine". I don't want to use JBI. Support for it is deprecated. Is there a separate "Non-JBI cluster engine" or what is going on...?
- I see a lot of mentions about "DOSGi". Do I need to worry my simple head with all that if I want to achieve clustered ServiceMix?
My solution will probably have a few bundles that communicate with each other using JMS queues. Should I in that case just have 2 independent ServiceMix instances (who do not know of each other). Wouldn't that be the simplest option? I see some support for a failover configuration (http://servicemix.apache.org/docs/4.5.x/users-guide/failover.html) but what benefits would that really give (am I missing something)? Also this failover configuration does not help with load balancing since just one instance is serving requests.
回答1:
From what it sounds like, all you need is two ServiceMix instances running side by side with no failover specifically configured. Failover is there if you want a cluster of instances, only one of which services requests.
Ignore the JBI stuff - it's legacy. Distributed OSGi is a red herring in the use case that you have described.
As boday suggests, Cellar is used to manage the installation of your bundles uniformly across a logical group of Karaf/ServiceMix instances, so you can manage them from one location as opposed to installing new versions on each instance by hand.
回答2:
Fabric8 (http://fabric8.io/) can do Karaf/ServiceMix clustering and much more out of the box. It also have additional clustered Camel components such as the master and fabric endpoints
- http://fabric8.io/gitbook/camelEndpointMaster.html
- http://fabric8.io/gitbook/camelEndpointFabric.html
There is a clustered Camel example, that demonstrates that
- https://github.com/fabric8io/fabric8/tree/master/fabric/fabric8-karaf/src/main/resources/distro/fabric/import/fabric/profiles/example/camel/cluster
The principle is illustrated in the image below:
回答3:
take a look at Apache Cellar as its targeted at these use cases...
http://karaf.apache.org/index/subprojects/cellar.html
来源:https://stackoverflow.com/questions/16896074/how-do-i-cluster-servicemix