Use child instances for Operating System level process protection - I tend to have several instances running on a host.
Host One: Master child instance for group A Slave child instance for group B Host Two: Master child instance for group B Slave child instance for group A Host Three: Database Scale upwards as required. As a note, use hot slaves - this starts a container up to a defined run level so that when it becomes a master it has less to load and hence be faster to resume services. As to deploying applications to each instance there are a multitude of ways you can accomplish this, one common way is using features files to deploy your apps. Karaf Archives provide another way to deploy as an atomic unit your bundles/features. Cheers, Jamie On Wed, May 23, 2012 at 10:52 AM, Borut Bolčina <[email protected]> wrote: > Hello, > > 2012/5/23 Jamie G. <[email protected]> > >> The ToDo refers to the documentation. >> >> The Master holds a lock on a JDBC table, when the Master dies than one >> of the slave instances looking to obtain that locked table will gain >> access. >> >> As to a few stories on failover setup, there are a number of approaches... >> >> One could setup Master/Slave child instances per host - in this >> scenario a lock file may be used. > > > Not safe enough. > >> >> >> One could use a shared lock file between hosts, where the file system >> supports true locking (ex NFSv4). > > > Not available. > >> >> Alternately you can use JDBC locking mechanism, you just need to >> ensure you have a highly available DB. > > > Yes, Percona XtraDB Cluster >> >> >> As to Dev/Alpha/test environments... that'll depend somewhat more upon >> your network environment, internal procedures,, and resources such as >> databases, etc that your applications will have to integrate with. >> Generally you'd have a separate deployment for each for testing >> purposes, with the required testing resources for your application >> (test DBs and other services). >> > The network, databases, procedures and resources are not in question, what I > am asking is what are common patterns with Karaf. Creating child instances, > running Karaf container as different user, maybe some other technique I did > not stumble upon yet? Maybe something from FuseSource? > > Thanks, > borut > >> >> Cheers, >> Jamie >> >> On Wed, May 23, 2012 at 10:00 AM, Borut Bolčina <[email protected]> >> wrote: >> > Hello, >> > >> > I am playing with Karaf (or the other way around), trying to find a >> > solution >> > how to set up a development and production environments. Yesterday I >> > installed Cellar features and tried some of the cluster commands and >> > they >> > seem to work as advertised. >> > >> > I would like to devise a plan for deploying bundles and features to a >> > cluster of Karaf instances on different machines with failover >> > capability. >> > It is kind of hard as I am still learning OSGi and the whole ecosystem. >> > >> > >> > At http://karaf.apache.org/manual/latest-2.2.x/users-guide/failover.html there >> > is a TODO section for MySql. Does that mean I can not use MySql for jdbc >> > locking or is there just lack of documentation? >> > >> > What does that mean: "If the master loses the lock, a waiting slave >> > process >> > gains access to the locking table and fully starts its container."? If >> > the >> > master machine's processor melts, then the slave will come up >> > automatically? >> > >> > I would really appreciate some stories on how to set up the fail over >> > environment and how to deploy to the selected environment (dev, alpha, >> > production,...) >> > >> > Thanks, >> > borut > >
