ØMQ你可以认为是一个消息系统,也可以认为是一个“面向消息的中间件”。它被广泛地应用在多个方面:财务系统、游戏开发、嵌入式系统、学术研究和航空航天。
消息系统最基本的功能就是为应用程序提供及时消息的发送。应用程序决定与其他一个(多个)应用程序进行通信,汇编数据然后进行发送。点击“发送”按钮一切搞定——消息系统把剩下的事情全部搞定。
和及时通信有所不同,消息系统没有GUI,出错的时候通讯终端没有人工干预和调停,所有消息系统必须具备容错性并且要比通常的及时消息要更快。
ØMQ原本是为股票交易所构思的一个超快消息系统,并进行了深度优化。项目开始第一年,工作的主要焦点是发明一些基准测试方法,并努力去定义一个尽可能高效的架构。
后来,大约在第二年的开发中,工作焦点转移为:提供一个构建分步式应用、支持任意消息通信模式、各种传输机制,任意语言绑定的通用系统。
在第三年中,专注于提高可用性和降低学习曲线,采用了BSD sockets的API,尝试去清除各个消息的模式的语义差异,等等。
希望本篇,能够对上面三点转化为ØMQ的内部架构有所深入认识,为那些还为同样问题挣扎的人们提供一些提示信息。
从第三年开始,ØMQ不断扩大代码库。试图建立一个通信标准,并把实验性的类似ØMQ的消息系统加入Linux内核。这些主题,本篇不做讨论,想了解更多,点击:
- http://www.250bpm.com/concepts
- http://groups.google.com/group/sp-discuss-group
- http://www.250bpm.com/hits