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),
			})