85.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的 sfo 实例时,sfnyc 实例将停止其路由,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>