Book Image

ZeroMQ

By : Faruk Akgul
Book Image

ZeroMQ

By: Faruk Akgul

Overview of this book

<p>Ø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.<br /><br />"ZeroMQ" teaches you to use ZeroMQ through examples in C programming language. You will learn how to use fundamental patterns of message/queuing with a step-by-step tutorial approach and how to apply them. Then, you’ll learn how to use high level APIs and to work with multiple sockets and multithreaded programs through many examples.<br /><br />This book looks at how message/queue works in general and what kinds of problems it solves. Then, it explains how ZeroMQ works and how it differs from other message/queue libraries and how it can be used in different scenarios.<br /><br />You will also learn how to apply essential message/queue design patterns in different scenarios, and how they differ from each other. It shows you practical examples you can apply. You will also learn how to work with multiple sockets.<br /><br />You will learn the basics of ZeroMQ as well as how to use different patterns.</p>
Table of Contents (12 chapters)

Cleaning up


When you code in a programming language such as Python or Java, you do not need to worry about memory management since these languages have built-in mechanisms to clean up the memory.

For example, Python uses reference counting when there are cycles in a reference chain of objects, which never gets freed and memory automatically gets cleaned up for you when you implement a ZeroMQ application in Python. So, you do not need to explicitly close a connection when coding a ZeroMQ application since it will be closed as soon as the reference count of the object becomes zero. However, we should note that this would not work on Jython, PyPy, or IronPython. Anyway, this is enough information on Python. Let's return to our main concern.

When you code in C, memory management is your responsibility. Otherwise you will have an unstable application, which will have memory leak problems.

You need to take care of sockets, messages, and contexts in ZeroMQ. There are a couple of things you need to...