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/