You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Hervé BARRAULT <he...@gmail.com> on 2012/02/21 18:34:02 UTC

Clustering

Hi,

I would use multiple servicemix instance to do the same job.

If an instance is overloaded, I would be able to call another instance to
continue the processing.
I thought exposing a remote OSGI service in the cluster (one by instance).
When one instance receive a message, it should call a local service.
If it is overloaded or other reason (i have my own rule to determine it),
it would call another instance to process it.

I have seen this document
http://blog.nanthrax.net/2011/11/apache-karaf-cellar-and-dosgi/.

Which are compulsory libraries for doing this mechanism (Cellar, a DOSGI
implementation (in CXF for example), ...) ?

>>If a “local” echoService exists, the OSGi framework will bind the
reference to this service, else Cellar will look for a distributed service
(on all node) exporting the EchoService >>interface and bind a proxy to the
distributed service.
Is this determination static or dynamic ? Is another instance called if a
communication error happen ?

For Information, I am currently using a 4.3 servicemix version (so i assume
that i should upgrade it).

Thanks for answers

Regards
Hervé

Re: Clustering

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi Hervé,

Ah ok for Fuse ESB, I was thinking you talked about ServiceMix 4.3 ;)

For the Hazelcast queues, yes, it's an alternative to JMS. You have 
quite the same functionalities but without all the configuration of the 
JMS brokers/networkConnectors, etc.

Regards
JB

On 02/21/2012 07:25 PM, Hervé BARRAULT wrote:
> Hi, thanks for the answer.
>
> The version used is a fuse ESB 4.3.0 (karaf 2.0.0) which is an earlier
> version (some difficulties to understand the way they name their releases),
> so i should upgrade.
>
> By reading your article, i will also check the functionalities offered by
> the Hazelcast queues (for JMS replacement ?).
>
> Regards
> Hervé
>
>
>
> On Tue, Feb 21, 2012 at 7:04 PM, Jean-Baptiste Onofré<jb...@nanthrax.net>wrote:
>
>> Hi Hervé,
>>
>> With DOSGi, a service is registered in the OSGi framework with a "cluster
>> aware" flag.
>>
>> When you bind a reference to this service, first, the "DOSGi engine" looks
>> for a service in the local OSGi service registry.
>> In the local registry, the service could be local or a kind of "proxy" to
>> another a service on another node (in Cellar, it uses a distributed
>> Hazelcast map for that).
>>
>> DOSGi is not designed for failover, but for distribution.
>>
>> However, DOSGi/Cellar could be used in a kind of LB/HA/FailOver way by
>> adding some layer on top of that. For instance, I blogged about how to use
>> Cellar Hazelcast instance to communicate between two Camel routes:
>>
>> http://blog.nanthrax.net/2012/**02/communication-between-two-**
>> remote-camel-routes-using-**karaf-cellar/<http://blog.nanthrax.net/2012/02/communication-between-two-remote-camel-routes-using-karaf-cellar/>
>>
>> You can use Cellar 2.2.x with ServiceMix 4.3 as it runs on Karaf 2.2.x.
>>
>> Regards
>> JB
>>
>>
>> On 02/21/2012 06:34 PM, Hervé BARRAULT wrote:
>>
>>> Hi,
>>>
>>> I would use multiple servicemix instance to do the same job.
>>>
>>> If an instance is overloaded, I would be able to call another instance to
>>> continue the processing.
>>> I thought exposing a remote OSGI service in the cluster (one by instance).
>>> When one instance receive a message, it should call a local service.
>>> If it is overloaded or other reason (i have my own rule to determine it),
>>> it would call another instance to process it.
>>>
>>> I have seen this document
>>> http://blog.nanthrax.net/2011/**11/apache-karaf-cellar-and-**dosgi/<http://blog.nanthrax.net/2011/11/apache-karaf-cellar-and-dosgi/>
>>> .
>>>
>>> Which are compulsory libraries for doing this mechanism (Cellar, a DOSGI
>>> implementation (in CXF for example), ...) ?
>>>
>>>   If a “local” echoService exists, the OSGi framework will bind the
>>>>>
>>>> reference to this service, else Cellar will look for a distributed
>>> service
>>> (on all node) exporting the EchoService>>interface and bind a proxy to the
>>> distributed service.
>>> Is this determination static or dynamic ? Is another instance called if a
>>> communication error happen ?
>>>
>>> For Information, I am currently using a 4.3 servicemix version (so i
>>> assume
>>> that i should upgrade it).
>>>
>>> Thanks for answers
>>>
>>> Regards
>>> Hervé
>>>
>>>
>> --
>> Jean-Baptiste Onofré
>> jbonofre@apache.org
>> http://blog.nanthrax.net
>> Talend - http://www.talend.com
>>
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Clustering

Posted by Hervé BARRAULT <he...@gmail.com>.
Hi, thanks for the answer.

The version used is a fuse ESB 4.3.0 (karaf 2.0.0) which is an earlier
version (some difficulties to understand the way they name their releases),
so i should upgrade.

By reading your article, i will also check the functionalities offered by
the Hazelcast queues (for JMS replacement ?).

Regards
Hervé



On Tue, Feb 21, 2012 at 7:04 PM, Jean-Baptiste Onofré <jb...@nanthrax.net>wrote:

> Hi Hervé,
>
> With DOSGi, a service is registered in the OSGi framework with a "cluster
> aware" flag.
>
> When you bind a reference to this service, first, the "DOSGi engine" looks
> for a service in the local OSGi service registry.
> In the local registry, the service could be local or a kind of "proxy" to
> another a service on another node (in Cellar, it uses a distributed
> Hazelcast map for that).
>
> DOSGi is not designed for failover, but for distribution.
>
> However, DOSGi/Cellar could be used in a kind of LB/HA/FailOver way by
> adding some layer on top of that. For instance, I blogged about how to use
> Cellar Hazelcast instance to communicate between two Camel routes:
>
> http://blog.nanthrax.net/2012/**02/communication-between-two-**
> remote-camel-routes-using-**karaf-cellar/<http://blog.nanthrax.net/2012/02/communication-between-two-remote-camel-routes-using-karaf-cellar/>
>
> You can use Cellar 2.2.x with ServiceMix 4.3 as it runs on Karaf 2.2.x.
>
> Regards
> JB
>
>
> On 02/21/2012 06:34 PM, Hervé BARRAULT wrote:
>
>> Hi,
>>
>> I would use multiple servicemix instance to do the same job.
>>
>> If an instance is overloaded, I would be able to call another instance to
>> continue the processing.
>> I thought exposing a remote OSGI service in the cluster (one by instance).
>> When one instance receive a message, it should call a local service.
>> If it is overloaded or other reason (i have my own rule to determine it),
>> it would call another instance to process it.
>>
>> I have seen this document
>> http://blog.nanthrax.net/2011/**11/apache-karaf-cellar-and-**dosgi/<http://blog.nanthrax.net/2011/11/apache-karaf-cellar-and-dosgi/>
>> .
>>
>> Which are compulsory libraries for doing this mechanism (Cellar, a DOSGI
>> implementation (in CXF for example), ...) ?
>>
>>  If a “local” echoService exists, the OSGi framework will bind the
>>>>
>>> reference to this service, else Cellar will look for a distributed
>> service
>> (on all node) exporting the EchoService>>interface and bind a proxy to the
>> distributed service.
>> Is this determination static or dynamic ? Is another instance called if a
>> communication error happen ?
>>
>> For Information, I am currently using a 4.3 servicemix version (so i
>> assume
>> that i should upgrade it).
>>
>> Thanks for answers
>>
>> Regards
>> Hervé
>>
>>
> --
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Re: Clustering

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi Hervé,

With DOSGi, a service is registered in the OSGi framework with a 
"cluster aware" flag.

When you bind a reference to this service, first, the "DOSGi engine" 
looks for a service in the local OSGi service registry.
In the local registry, the service could be local or a kind of "proxy" 
to another a service on another node (in Cellar, it uses a distributed 
Hazelcast map for that).

DOSGi is not designed for failover, but for distribution.

However, DOSGi/Cellar could be used in a kind of LB/HA/FailOver way by 
adding some layer on top of that. For instance, I blogged about how to 
use Cellar Hazelcast instance to communicate between two Camel routes:

http://blog.nanthrax.net/2012/02/communication-between-two-remote-camel-routes-using-karaf-cellar/

You can use Cellar 2.2.x with ServiceMix 4.3 as it runs on Karaf 2.2.x.

Regards
JB

On 02/21/2012 06:34 PM, Hervé BARRAULT wrote:
> Hi,
>
> I would use multiple servicemix instance to do the same job.
>
> If an instance is overloaded, I would be able to call another instance to
> continue the processing.
> I thought exposing a remote OSGI service in the cluster (one by instance).
> When one instance receive a message, it should call a local service.
> If it is overloaded or other reason (i have my own rule to determine it),
> it would call another instance to process it.
>
> I have seen this document
> http://blog.nanthrax.net/2011/11/apache-karaf-cellar-and-dosgi/.
>
> Which are compulsory libraries for doing this mechanism (Cellar, a DOSGI
> implementation (in CXF for example), ...) ?
>
>>> If a “local” echoService exists, the OSGi framework will bind the
> reference to this service, else Cellar will look for a distributed service
> (on all node) exporting the EchoService>>interface and bind a proxy to the
> distributed service.
> Is this determination static or dynamic ? Is another instance called if a
> communication error happen ?
>
> For Information, I am currently using a 4.3 servicemix version (so i assume
> that i should upgrade it).
>
> Thanks for answers
>
> Regards
> Hervé
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com