![骆驼iptv](https://i-blog.csdnimg.cn/blog_migrate/df8a35f0724b826bcbe0d57b98047e3b.png)
骆驼iptv
一种实现主/从故障转移模式的方法是拥有一个应用程序的实例集群,其中一个实例(主实例)当前处于活动状态,而其他实例(从属实例)处于待机状态,随时可以在主实例发生故障时接管。 一些项目提供了开箱即用的这种主/从支持:
为Apache Karaf创建故障转移部署很简单:我们启动两个或多个Karaf实例,并让它们指向相同的锁(文件系统或数据库)。 然后,第一个启动的实例将获得锁并成为主实例,而其他实例将在启动捆绑包之前等待获取锁。 另外,Karaf提供了热备用功能,其中即使在从属实例中也启动了一些捆绑包,而其他捆绑包等待获得锁。
Apache ActiveMQ提供了几种创建主/从配置的方法,但最简单的方法是启动两个或多个ActiveMQ实例,它们指向同一个数据源(文件或数据库),第一个代理获得锁定并成为主数据,第二个和另一个经纪人成为奴隶,等待锁。 简单。
骆驼呢? 我们如何有多条路由(在一个或单独的容器中),其中一个是主路由(处于运行状态),而其他路由在主路由停止后立即等待接管,以确保路由级别的高可用性? 有几个提供这种功能的组件,并且所有组件都依赖于将某种集中式外部系统用作锁。
- Camel Quartz组件具有集群支持。
- 如果使用石英使用者,则在群集模式下,一次只能触发一条路由。
- 或者,如果使用基于石英的CronScheduledRoutePolicy ,则在群集模式下,只会启动/停止一条路由。
这两个选项都依赖于将石英配置有在群集中所有路由之间共享的数据源。 这种用法不完全是主/从,但最终会产生相同的效果。
- Camel Zookeeper组件提供了一个RoutePolicy,可以以主/从方式启动/停止路由。 获取锁的第一条路线将开始,其余路线将等待获取锁。 此组件的一个优点是可以配置为运行多个主机。
- 骆驼JGroups组件还具有使用JGroupsFilters的主/从功能。
- JBoss Fuse Master组件可能是在Fuse环境中进行主/从设置的最简单方法。 在内部,它依赖Zookeeper的znode功能,类似于上面的zookeeper组件。
- 这尚未实现,但从理论上讲,可以使用ActiveMQ的专有使用者功能(提供分布式锁)来实现RoutePolicy。 如果您实施此方法,请告诉我!
翻译自: https://www.javacodegeeks.com/2014/01/masterslave-failover-for-camel-routes.html
骆驼iptv