Mekanisme ketekunan RabbitMQ meliputi ketekunan antrian, ketekunan pesan, dan ketekunan pertukaran. Apakah pesan bertahan atau tidak, dapat ditulis ke disk.
Pesan yang bertahan ditulis ke disk dan memori (untuk mempercepat pembacaan), sedangkan pesan tidak bertahan ditulis ke disk saat memori tidak mencukupi (mereka akan hilang setelah RabbitMQ restart).
Ketekunan Antrian RabbitMQ
Saat mendeklarasikan antrian, Anda dapat mengatur apakah antrian perlu dipersistensikan. Dalam Golang, antrian dideklarasikan sebagai berikut:
q, err := ch.QueueDeclare(
"hello", // nama antrian
true, // apakah antrian harus dipersistensikan
false,
false,
false,
nil,
)
Tip: Serupa dengan bahasa pemrograman lain, antrian dapat diatur saat mendeklarasikannya.
Ketekunan Pertukaran RabbitMQ
Saat mendeklarasikan pertukaran, Anda dapat mengatur apakah perlu dipersistensikan menggunakan properti. Dalam Golang, ini dideklarasikan sebagai berikut:
err = ch.ExchangeDeclare(
"tizi365", // nama pertukaran
"fanout", // tipe pertukaran
true, // apakah itu harus dipersistensikan
false,
false,
false,
nil,
)
Tip: Serupa dengan bahasa pemrograman lain, ketekunan dapat diatur saat mendeklarasikan pertukaran.
Ketekunan Pesan RabbitMQ
Saat memublikasikan pesan, Anda dapat mengatur apakah pesan perlu dipersistensikan melalui properti pesan.
Tip: Ketekunan antrian tidak berarti pesan secara otomatis bertahan.
Dalam Golang, pesan dipublikasikan sebagai berikut:
err = ch.Publish(
"tizi365", // pertukaran
"", // routing key
false,
false,
amqp.Publishing{
DeliveryMode:2, // mode pengiriman pesan, 1 untuk tidak persisten, 2 untuk persisten
ContentType: "text/plain",
Body: []byte(body),
})