|
ØMQ (also spelled ZeroMQ, 0MQ or ZMQ) is a high-performance asynchronous messaging library, aimed at use in scalable distributed or concurrent applications. It provides a message queue, but unlike message-oriented middleware, a ØMQ system can run without a dedicated message broker. The library is designed to have a familiar socket-style API. ØMQ is developed by a large community of contributors, founded by iMatix, which holds the domain name and trademarks. There are third-party bindings for many popular programming languages. ==Technology== The ØMQ API provides ''sockets'' (a kind of generalization over the traditional IP and Unix domain sockets), each of which can represent a many-to-many connection between endpoints. Operating with a message-wise granularity, they require that a messaging pattern be used, and are particularly optimized for that kind of pattern. The basic ØMQ patterns are: ;Request–reply :Connects a set of clients to a set of services. This is a remote procedure call and task distribution pattern. ;Publish–subscribe :Connects a set of publishers to a set of subscribers. This is a data distribution pattern. ;Push–pull (pipeline) :Connects nodes in a fan-out / fan-in pattern that can have multiple steps, and loops. This is a parallel task distribution and collection pattern. ;Exclusive pair :Connects two sockets in an exclusive pair. (This is an advanced low-level pattern for specific use cases.) Each pattern defines a particular network topology. Request-reply defines so-called "service bus", publish-subscribe defines "data distribution tree", push-pull defines "parallelised pipeline". All the patterns are deliberately designed in such a way as to be infinitely scalable and thus usable on Internet scale.〔(Scalability Layer Hits the Internet Stack )〕 Any message through the socket is treated as an opaque blob of data. Delivery to a subscriber can be automatically filtered by the blob leading string. Available message transports include TCP, PGM (reliable multicast), inter-process communication (IPC) and inter-thread communication (ITC). The ØMQ core library performs very well due to its internal threading model, and can outperform conventional TCP applications in terms of throughput by utilizing an automatic message batching technique.〔(【引用サイトリンク】url=http://www.zeromq.org/area:faq#toc6 )〕〔(【引用サイトリンク】url=http://cds.cern.ch/record/1391410?ln=en )〕 ØMQ implements ZMTP, the ZeroMQ Message Transfer Protocol.〔(【引用サイトリンク】url=http://rfc.zeromq.org/spec:23 )〕 ZMTP defines rules for backward interoperability, extensible security mechanisms, command and message framing, connection metadata, and other transport-level functionality. A growing number of projects implement ZMTP directly as an alternative to using the full ØMQ implementations.〔(【引用サイトリンク】url=https://github.com/search?q=zmtp&ref=cmdform )〕 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「ØMQ」の詳細全文を読む スポンサード リンク
|