Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan AWS SQS dalam Go: Panduan Lengkap

Menggunakan AWS SQS dalam Go: Panduan Lengkap

王林
王林asal
2023-06-17 21:50:491385semak imbas

Sebagai bahasa pengaturcaraan sumber terbuka, populariti bahasa Go telah meningkat. Ia mempunyai konkurensi yang cekap dan sintaks ringan, jadi semakin ramai pembangun memilih untuk menggunakan bahasa Go untuk pembangunan aplikasi. AWS SQS (pendek kata SQS) ialah perkhidmatan baris gilir mesej terurus sepenuhnya yang disediakan oleh Amazon Web Services (AWS) yang boleh digunakan untuk penyelesaian pemesejan dalam aplikasi yang diedarkan. Artikel ini akan memperincikan cara menggunakan AWS SQS dalam bahasa Go dan menyediakan beberapa contoh kod dan amalan terbaik.

  1. Persediaan

Sebelum anda mula menggunakan AWS SQS, anda perlu melengkapkan persediaan berikut:

1.1 Buat baris gilir SQS pada AWS

Membuat baris gilir SQS baharu pada AWS adalah sangat mudah. Hanya log masuk ke AWS Management Console, pergi ke konsol SQS dan ikut gesaan untuk membuat baris gilir baharu. Apabila anda membuat baris gilir, anda menentukan nama baris gilir dan tetapan lain. Contohnya, anda boleh memilih dasar akses baris gilir, protokol pengangkutan, kependaman dan banyak lagi.

1.2 Pasang dan konfigurasikan aws-sdk-go

aws-sdk-go ialah SDK bahasa Go yang disediakan secara rasmi oleh AWS Ia menyediakan semua fungsi yang diperlukan untuk berinteraksi dengan API perkhidmatan AWS . Memasang aws-sdk-go adalah semudah menjalankan perintah berikut dalam tetingkap terminal:

go get github.com/aws/aws-sdk-go/aws

Setelah pemasangan selesai, anda perlu menyediakan maklumat kelayakan AWS untuk membolehkan SDK mengakses sumber AWS anda . Anda disyorkan agar menggunakan pengguna atau peranan AWS IAM dan mengaitkannya dengan kebenaran yang sesuai. Anda kemudiannya boleh mengkonfigurasi bukti kelayakan AWS dalam kod Go anda menggunakan arahan berikut:

sess, err := session.NewSession(&aws.Config{
      Region: aws.String("us-east-1"),
      Credentials: credentials.NewStaticCredentials("AKID", "SECRET", ""),
})

Dalam contoh ini, "AKID" dan "RAHSIA" ialah maklumat kelayakan AWS anda. Pastikan anda menggantikan ini dengan maklumat kelayakan anda sendiri.

  1. Menggunakan AWS SQS dalam Go

Selepas menyelesaikan kerja penyediaan, anda kini boleh mula menggunakan AWS SQS dalam bahasa Go. Berikut ialah beberapa contoh kes penggunaan biasa menggunakan AWS SQS.

2.1 Menetapkan sifat baris gilir

Apabila menggunakan AWS SQS, anda perlu menetapkan sifat baris gilir untuk mengkonfigurasi kelakuannya. Contohnya, anda boleh menetapkan tamat masa keterlihatan mesej baris gilir, kelewatan lalai, had saiz baris gilir dan banyak lagi. Berikut ialah contoh kod tentang cara menetapkan sifat baris gilir dalam Go:

svc := sqs.New(sess)

queueURL := "YOUR_QUEUE_URL"

params := &sqs.SetQueueAttributesInput{
    Attributes: map[string]*string{
        "VisibilityTimeout": aws.String("3600"),
        "DelaySeconds":      aws.String("10"),
        "MaximumMessageSize": aws.String("2048"),
    },
    QueueUrl: &queueURL,
}

_, err := svc.SetQueueAttributes(params)
if err != nil {
    fmt.Println("Error", err)
    return
}

fmt.Println("Success")

Dalam contoh ini, "YOUR_QUEUE_URL" ialah URL baris gilir SQS anda. Anda perlu menggantikannya dengan URL baris gilir anda sendiri.

2.2 Menghantar mesej ke baris gilir

Untuk menghantar mesej ke baris gilir AWS SQS, anda perlu mencipta mesej baharu dan menghantarnya ke baris gilir. Berikut ialah kod contoh tentang cara menghantar mesej ke baris gilir AWS SQS dalam Go:

svc := sqs.New(sess)

queueURL := "YOUR_QUEUE_URL"

params := &sqs.SendMessageInput{
    MessageBody: aws.String("Hello world!"),
    QueueUrl:    &queueURL,
}

resp, err := svc.SendMessage(params)
if err != nil {
    fmt.Println("Error", err)
    return
}

fmt.Println("Success", *resp.MessageId)

Dalam contoh ini, "Hello world ialah badan mesej yang akan dihantar. Anda boleh menggantikannya dengan badan mesej anda sendiri.

2.3 Menerima mesej daripada baris gilir

Untuk menerima mesej daripada baris gilir AWS SQS, anda perlu menggunakan mekanisme pengundian yang panjang dan semak baris gilir secara berkala untuk melihat sama ada mesej baharu tersedia. Berikut ialah kod contoh cara menerima mesej dalam bahasa Go:

svc := sqs.New(sess)

queueURL := "YOUR_QUEUE_URL"

for {
    params := &sqs.ReceiveMessageInput{
        QueueUrl:            &queueURL,
        MaxNumberOfMessages: aws.Int64(1),
        WaitTimeSeconds:     aws.Int64(20),
    }

    resp, err := svc.ReceiveMessage(params)
    if err != nil {
        fmt.Println("Error", err)
        return
    }

    for _, msg := range resp.Messages {
        fmt.Println("Received message:", *msg.Body)

        deleteParams := &sqs.DeleteMessageInput{
            QueueUrl:      &queueURL,
            ReceiptHandle: msg.ReceiptHandle,
        }

        _, err := svc.DeleteMessage(deleteParams)
        if err != nil {
            fmt.Println("Error", err)
            return
        }
    }

    time.Sleep(5 * time.Second)
}

Dalam contoh ini, kami telah menggunakan mekanisme pengundian yang panjang dan menyemak baris gilir secara berkala menggunakan gelung. Apabila mesej baharu tersedia dalam baris gilir, kami menerimanya dan mencetak badan mesej pada konsol. Kami kemudiannya akan mengalih keluar mesej daripada baris gilir menggunakan ReceiptHandle mesej. Ambil perhatian bahawa apabila menerima mesej anda perlu menentukan masa menunggu. Dalam contoh ini, kami menetapkan masa menunggu kepada 20 saat.

  1. Amalan Terbaik

Apabila menggunakan AWS SQS, pastikan anda mengikuti amalan terbaik ini:

  • Minikan saiz mesej. Setiap mesej mempunyai had saiz 256K, jadi anda harus memastikan saiz mesej anda sekecil mungkin.
  • Gunakan mekanisme pengundian yang panjang. Mekanisme pengundian yang panjang boleh mengurangkan bilangan panggilan AWS SQS dan meningkatkan kelajuan tindak balas aplikasi.
  • Kosongkan baris gilir dengan kerap. Membersihkan baris gilir boleh membantu anda mengelakkan mesej tamat tempoh atau tidak berguna.
  1. Kesimpulan

Artikel ini membentangkan panduan lengkap untuk menggunakan AWS SQS dalam bahasa Go. Dengan artikel ini, anda harus tahu cara menetapkan sifat baris gilir, menghantar mesej, menerima mesej dan mengikuti amalan terbaik. AWS SQS ialah perkhidmatan baris gilir mesej yang berkuasa yang boleh digunakan untuk membina aplikasi teragih berskala dan boleh dipercayai. Dalam projek Go anda yang seterusnya, anda harus mempertimbangkan untuk menggunakan AWS SQS untuk mengendalikan pemesejan.

Atas ialah kandungan terperinci Menggunakan AWS SQS dalam Go: Panduan Lengkap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn