《The DynamoDB Book》读书笔记

同事推荐的一本书,只有英文电子版。作者是Alex DeBrie,之前介绍过,是单表设计的推崇者。

这本书前面部分几个章节介绍 DynamoDB 的基本概念,后面部分是一些实际的设计案例。

阅读更多

AWS client getaddrinfo EMFILE issue

最近,在我们系统中引入了 AWS Cloud Map 作为我们的服务发现系统。部署几周后没有问题,今天突然抛出错误,日志显示错误 getaddrinfo EMFILE events.ap-southeast-2.amazonaws.com
当然,并非所有请求都触发了此错误,只是在高流量时段才出现了这个错误。

阅读更多

如何防止重复处理 SQS 消息

问题

一般来说在我们的系统中,消息处理必须保证幂等性,以防止消息重复处理。在我们的系统中,下面两种情况可能导致相同消息被重复处理:

  1. 调度器和消息生产者:调度器或消息生产者可能会被多次触发,比如时不时有些任务因为超时而被多次触发。
  2. 队列管理:如果一个 Lambda 实例处理消息超时,另一个实例可能会在 visibility timeout 设置不合适的情况下得到重新处理相同消息的机会。

如果消息被多次处理,我们可能会向客户发送重复的电子邮件和短信,甚至礼品卡都可能重复发送。所以,我们需要一个通用的机制来确保相同消息不会被多次处理。

阅读更多

Athena in IntelliJ IDE

目前所在公司使用的是 Serviceless 架构,数据库使用 DynamoDB,每天定时任务会导入数据湖,所以平时会经常使用 Athena 查询来排查问题,尤其是最近在调查数据一致性的问题。Athena 本身可以满足日常需求,只是使用多的时候觉得不如 IDE 方便。

阅读更多