AWS ALB能否将请求同时转发至目标组内全部EC2实例?
AWS ALB 能否将请求同时转发至目标组内所有EC2实例?
默认情况下,AWS Application Load Balancer(ALB)的目标组转发逻辑是单次请求仅路由至目标组内的一个实例,支持的路由策略包括轮询、加权轮询、最少连接数等,没有原生的“广播”请求到所有实例的功能,所以没法直接让ALB把同一份指标数据同时转发到两台EC2的InfluxDB中。
要实现你的需求,有几种可行的方案:
- 借助ALB关联的Lambda函数:配置ALB的监听器规则,将请求转发到Lambda函数而非目标组。由Lambda函数接收请求后,自行复制请求内容,分别发送到两台EC2实例的InfluxDB写入端点。需要注意处理请求超时、写入失败重试等异常情况。
- 使用SNS+Lambda架构:将指标数据先发送到Amazon SNS主题,为每台EC2的InfluxDB创建一个Lambda订阅函数。SNS会自动将消息推送给所有订阅的Lambda,再由Lambda完成对应实例的InfluxDB数据写入。这种异步架构可靠性更高,适合指标类数据的多副本存储。
- 客户端侧处理:如果发送指标的客户端可修改,让客户端直接将同一份数据同时发送到两台EC2的地址;或者先发送到其中一台,再由该实例的服务负责将数据同步到另一台的InfluxDB。不过这种方式依赖客户端改造,同步逻辑也需要自行维护。
内容的提问来源于stack exchange,提问作者Marco Ferrara
相关产品推荐
相关产品推荐

