86.6. DNS 激活策略
DnsActivationPolicy 可用于根据 dns 状态动态启动和停止路由。
如果您的不同区域中运行的同一组件的实例,您可以在每个区域中配置路由,以便在 dns 指向其区域时才激活。
例如,您可能在 NYC 中有一个实例,并在 SFO 中有一个实例。您要将服务 CNAME service.example.com 配置为指向 nyc-service.example.com,使 NYC 实例启动和 SFO 实例关闭。当您将 CNAME service.example.com 更改为指向 sfo-service.example.com iwl-unmarshalnyc 实例时,将停止其路由,sfo 将启动其路由。这可让您在不重启实际组件的情况下切换区域。
<bean id="dnsActivationPolicy" class="org.apache.camel.component.dns.policy.DnsActivationPolicy"> <property name="hostname" value="service.example.com" /> <property name="resolvesTo" value="nyc-service.example.com" /> <property name="ttl" value="60000" /> <property name="stopRoutesOnException" value="false" /> </bean> <route id="routeId" autoStartup="false" routePolicyRef="dnsActivationPolicy"> </route>