If you ever wrote production multi-threaded server in Java you know how it is difficult to implement load balancing between worker threads. You need to fight many issues to have good load balancer: You need to limit somehow the number of worker threads, because with unlimited thread pool you can have memory exhausted. You need to implement sophisticated procedure for clean worker shutdown. If you
Ruby developers need to stop using EventMachine. It's the wrong direction. Lost in the "Threads vs Event Driven vs Process Spawning" debate is that you can combine them! Learn how Celluloid is improving thread programming by abstracting them using a higher level framework called Celluloid, how you can use Celluloid::IO to throw a reactor pattern into a thread. Using this approach, you can take adv
By Ilya Grigorik on September 03, 2010 Berkeley Sockets (BSD) are the de facto API for all network communication. With roots from the early 1980's, it is the original implementation of the TCP/IP suite, and arguably one of the most widely supported and critical components of any operating system today. BSD sockets that most of us are familiar with are peer-to-peer connections, which require explic
Mongrel2は各種の外部リクエストをZeroMQに変換することにより、均一なインターフェースを提供し言語ニュートラルな分散型のシステム構築を可能にしてる。 http://sheddingbikes.com/posts/1276761301.html 「まだ君は気がついていないかもしれないけど、このデザインはウェブアプリケーションのアーキテクチャーと稼働形態を変えるものにる可能性がある」 "It may not dawn on you quite yet, but I think this design has a verygood chance of changing how we architect and deploy web applications." 大口を叩くので有名なZedがまた何か叫んでいる。聞いてみようではないか。 全ての言語を愛するサーバ mongrel(バージョン
ZeroMQ http://zguide.zeromq.org/page:all JeroMQ https://github.com/zeromq/jeromq ZeroMQはシンプルで高速なプロセス間通信を実現する C/C++のライブラリ。ライブラリのラッパーは対応言語が豊富。 キューは永続化はされない。メモリで処理されるので高速。 ライセンスはLGPL。 こちらのエントリが詳しい ØMQ(zeromq)について調査する。 JeroMQはZeroMQがC/C++で書かれてるのに対してJavaで書かれている。 libzmq 3.2.2に基づいた0.3.0-SNAPSHOTを今回は使用する。 ZeroMQと違いJava実装なのでJVMとjarがあれば動いてしまう手軽さが良い。 またパフォーマンスも頑張っている。ライセンスはLGPL。 では上記のような Client REQUEST <-> R
We use cookies to provide our services and for analytics and marketing. To find out more about our use of cookies, please see our Privacy Policy. By continuing to browse our website, you agree to our use of cookies. OK Pushpin makes it easy to create HTTP long-polling, HTTP streaming, and WebSocket services using any web stack as the backend. It’s compatible with any framework, whether Django, Rai
Lately I performed a message queue benchmark, comparing several queuing frameworks (RabbitMQ, ActiveMQ…). Those benchmarks are part of a complete study conducted by Adina Mihailescu, and everything was presented at the April 2013 riviera.rb meet-up. You should definitely peek into Adina’s great presentation available online right here. Setup and scenarios So I wanted to benchmark brokers, using d
1.はじめに 3回にわたり、システム間連携を行う際の高付加価値な機能としてMOM(Message Oriented Middleware)のRabbitMQ,ESB(Enterprise Service Bus)のJBossESB,Muleを紹介してきました。今回は視点を変え、すべての通信の基礎となるソケット通信(以下、Berkeley socketsと呼びます)のAPIに焦点をあて、それに対するフレームワークであるZeroMQ(http://www.zeromq.org/)を紹介します。 2.Berkeley socketsの問題点 Berkeley socketsを用いたシステム間連携(TCP/IP通信)の処理の流れは次のようになります。 このソケット通信はMOMを用いたシステム間連携と対比しますと付加価値機能が無い分だけ高速に動作し、ハブ&スポークのハブにあたる部分が無いためシステ
第1回 橋本です。 今回も引き続きØMQの話です。 簡単なサンプルプログラムを動かしながら、ØMQの内部動作を探っていきます。 なお、この連載は、あくまで「内部を探る」が目的のため、ØMQの説明では必ずといって良いほど出てくるtopologyの説明は、割愛しちゃいます。 ちょっと拍子抜けかも知れませんが、マニュアルを参考にしてくださいね。 最初のサンプルコード 2回目にして最初のサンプルコードです。 ØMQではいろいろな通信方式・構成を選べるのですが、まずはネットワークプログラムを書く人間なら誰しも書く、シンプルなサーバ・クライアント形式のプログラムを書いてみます。 今回は簡単のために素のC言語のAPIを触っています。 Javaなどの他の言語でもあまり変わらないので、安心してください。 サーバ側 まずはサーバ側です。 ソケットプログラミングを経験した人ならば容易に想像がつく実装だと思います
橋本です。 これから数回にわたってØMQについて取り上げていこうと思います。 書いている中の人の趣味趣向により「どう使いこなすか?」というより「どう作られているか?」に軸足を移した 内容になると思います。 私と同じく「Stormってどういう作りになっているんだろう?」とか「Hadoopのソース読んでたら1日終わってた!」という人向けの内容になります。 その分ある程度深くもぐろうと思いますので、よろしくお願いします。 ØMQの紹介 ØMQというのは簡単に言うと「並列処理でパフォーマンスを出すための通信フレームワーク」です。 2007年ごろから開発されているOSSとしては歴史あるソフトウェアなのですが、 Stormの通信レイヤの実装で一躍有名になったのではないでしょうか? 少なくとも私はStormのソースコード公開で初めて知り、作り手の熱い思いにわくわくしたクチです。 "MQ"という文字が含ま
This document discusses building scalable systems using event-driven architecture (EDA). It covers key EDA concepts like messaging patterns, domain events, event streaming, actors, and command query responsibility segregation (CQRS). Implementation patterns are presented, like event sourcing to store system state as a sequence of events. Challenges with clustering brokers, guaranteed delivery, com
Asynchronous Processing in Web Applications, Part 2: Developers Need to Understand Message Queues In the first part of this series, we explained asynchronous processing, when you might need to use it and why leveraging a database for that purpose is not necessarily the best option. In this post, we will explore a smarter approach to asynchronous processing using “message queues”. Given the reason
I’ve spent an interesting week evaluating various Message Queue products. The motivation behind this is a client that has somewhat high performance requirements. They have bursts of over a million simultaneous messages. Currently they’re using a SQL server based solution, but it’s not ideal, and I’m suggesting they look at Message Queuing products as an alternative. In order to get a completely un
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く