使用Golang的同步和异步的AWS SQS工作者实例

92 阅读1分钟

在这个例子中,我们将使用AWS SQS来生产和消费消息。我们将使用的消费者工作者以同步(阻塞)或异步(非阻塞)方式工作。它允许我们运行一个或多个工作者。同时,每个工作者可以运行一个或多个消费者,如下面的图所示。

结构

├── cmd

文件

aws.go

package aws

sqs.go

package aws

client.go

package cloud

model.go

package cloud

producer.go

我们在这里生产500条假消息。

package email

main.go (producer)

这是我们的生产者应用程序/微服务。

package main

consumer.go

package email

main.go (consumer)

这是我们的消费者应用程序/微服务。

package main

队列

$ aws --profile localstack --endpoint-url http://localhost:4566 sqs get-queue-attributes --queue-url http://localhost:4566/000000000000/welcome-email

测试

生产者

$ go run --race cmd/producer/main.go

消费者

$ go run --race cmd/consumer/main.go