信頼性の高いメッセージキューを使って、
遅延処理を行うケースの重要性について最近考えるようになった。
そのため、AMQPとか調べていて、rabbitmqを使ってみようかと考えた。
とはいえ、rabbitmqはAMQP0.9をベースとしており、
AMQP1.0をベースにしていないなどの点において、
採用候補としては迷うところである。
ActiveMQとかの方がいいかもね、という考えもある。
AMQPではないが、kafkaなどもよさげではあるが、
簡単に調べて、rabbitmqが良さげな点としては、
- 貧弱サーバでもある程度動く(と思っている)
- クラスター機能が単体で存在している
といったところでしょうか。
riakを検証しててなんとなくわかったのですが、
開発言語であるerlangはそれほど大きなメモリを使わず、
マルチコアの利用も上手な印象であったため、
他サーバへの相乗り等、縮小することも考えると、悪くないかなーといった具合で検証を進めるてみることにしたというわけです。
ActiveMQやkafkaだと、貧弱サーバで動かすのは厳しい感じがしてます。。
で、簡単ながら、検証してみたことろ、メッセージの信頼性の度合はプログラムに依存するような印象を持ってます。
rabbitmq本体に、キューのタイプなどを定義できるのかなーと思っていたが、
特段相違そのような設定などは見られなったため、
プログラムの書き手が信頼性の確保、処理の速度について理解しておく必要があるという点が、
中々やっかいでもある反面、融通も効きやすい感じである。
また、諸々検証したら続きを書いてみようと思う。
以上
コメントがあればどうぞ