在这个例子中,我们将使用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