小编tom*_*tom的帖子

SQS 上接收消息时出现 i/o 超时问题以及 https 使用内存泄漏

AWS 开发工具包版本:v1.38.19

Go版本:go1.15.7

高山3.7

我正在使用标准队列,我在我的应用程序中立即初始化 SQS 连接,如下所示;

// Connection connection to the SQS
var Connection *sqs.SQS

// InitSQS initialize the AWS SQS connection
func InitSQS() {
    sess := session.Must(session.NewSessionWithOptions(session.Options{
        SharedConfigState: session.SharedConfigEnable,
    }))

    Connection = sqs.New(sess, &aws.Config{
        Region:     aws.String("eu-west-1"),
        DisableSSL: aws.Bool(true),
    })
}
Run Code Online (Sandbox Code Playgroud)

我禁用 SSL 因为;当我在应用程序中使用 SSL 时,我遇到内存和 CPU 泄漏(我的应用程序不对世界其他地方开放,顺便说一句,它是我其他应用程序的内部服务)。

这是我用来从 SQS 读取消息的配置:

func ConsumeUpdateMessage(db *database.MySQLWrap, sqsApi queue.SQSAPI) error {
    result, err := sqsApi.ReceiveMessage(&sqs.ReceiveMessageInput{
        AttributeNames: []*string{
            aws.String(sqs.MessageSystemAttributeNameSentTimestamp),
        },
        MessageAttributeNames: []*string{
            aws.String(sqs.QueueAttributeNameAll),
        },
        QueueUrl:            &qURL,
        MaxNumberOfMessages: aws.Int64(10),
        WaitTimeSeconds:     aws.Int64(20),
    })

    if err …
Run Code Online (Sandbox Code Playgroud)

go amazon-sqs amazon-web-services consumer aws-sdk-go

5
推荐指数
1
解决办法
1032
查看次数