carmineクライアントマネジメントを、よくわからないwcarマクロに統一してるのなんなんですかね。すごい使いづらい。
@blackenedgold: 確かにわかりづらいです。 wcar
はおそらく with-carmine という意味だと思います。Clojureでよく見かける with-*
のパターンです( with-out
や with-db-transaction
などみたいな)。 wcar
は connection pooling と redis pipelining を全部このマクロで処理しています。
僕はマクロより普通の defn
の方がいいんですけどね。
withマクロっぽいのはいいんですがクライアントとかコネクションプールとかを触らせてくれないのが気持ち悪いですね…
検証してみたらcarmine、1000qpsには耐えられそうになかったので見送りですね。
そうですか。僕はたしかシングルスレッドでも 3000〜5000 msg/s くらいまでいけました。でも、あれは単なるログサーバでした。環境の違いもあるでしょうし。
RabbitMQ や Kafka などなら、余裕でもっといけるはずです。設定するのに時間がかかりますけど。
HornetQ もいいかもしれませんが、使ったことがないのでよくわかりません。
もしかしたらworkerを作るときにlazy-seqが作られてた可能性があってconsume出来てなかった可能性があるのですがもうzeromqにしてしまいました。
バックエンド側のベンチマークだと、こんな感じですね。 http://bravenewgeek.com/dissecting-message-queues/