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>