高性能/轻量级通讯库,Qpid Proton 0.11.0 发布
Apache Qpid (Open Source AMQP Messaging) 是一个跨平台的企业通讯解决方案,实现了高级消息队列协议。提供了 Java、C++ 两种服务端版本以及 Java、C++、.NET、Python和Ruby语言的客户端。
其中C++版本的服务器端具备高性能/低消耗以及RDMA支持,可运行于Windows/Linux和Solaris平台;而Java版本的服务器则支持JMS,以及各种平台。
关于RDMA的相关知识:
RDMA(Remote Direct Memory Access)是通过网络把资料直接传入某台计算机的一块存储区域,不需用到多少计算机的处理功能。普通网卡集成了支持硬件校验和的功能,并对软件进行了改进,从而减少了发送数据的拷贝量,但无法减少接收数据的拷贝量,而这部分拷贝量要占用处理器的大量计算周期。普通网卡的工作过程如下:先把收到的数据包缓存到系统上,数据包经过处理后,相应数据被分配到一个TCP连接。下一步,接收系统再把主动提供的TCP数据同相应的应用程序联系起来,并将数据从系统缓冲区拷贝到目标存储地址。以太网已能满足高性能应用对网络吞吐率的要求,具备高吞吐率和成本优势,以太网技术要跟高性能网络应用挂钩,主要解决的问题是 应用吞吐率。通常情况下,系统持续在主机CPU中处理以太网通信需要占用CPU资源。CPU速率会制约网络数据率;持续处理这类通信会导致CPU性能降 级;对多端口千兆位或单端口10千兆位以太网,这类问题会变得更为严重。
Qpid Proton 0.11.0 发布,Proton 是高性能,轻量级通讯库。此版本更新内容如下:
新特性和改进
-
PROTON-948 - remove deprecated methods on the Message
-
PROTON-964 - Proton-J extensible event types
-
PROTON-972 - Support the heartbeat option in BlockingConnection
-
PROTON-980 - Enable handler processing the event after child handlers have processed it
-
PROTON-981 - Make JythonTest extendable
-
PROTON-982 - Make proton python tests compatible with unittest
-
PROTON-984 - Document proton-j time units
-
PROTON-997 - Allow proton-j handler to be extended by a jython class
-
PROTON-1011 - Go example of plain event-driven broker.
-
PROTON-1016 - Jython implements long with a BigInteger
-
PROTON-1036 - c++: engine API for integration with external IO frameworks
Bugs 修复
-
PROTON-892 - pn_data_t capacity does not grow above 32768 items
-
PROTON-937 - LinkImpl.localOpen() does not initialize source and target
-
PROTON-949 - proton doesn't build with ccache swig
-
PROTON-952 - Building Proton with python 2.6 and python 3.4 on Travis CI finds and links wrong libpython
-
PROTON-971 - [proton-j] multi-frame deliveries may be broken when sent if buffered along with a futher delivery for the same link
-
PROTON-974 - single symbol for mechanisms in sasl-mechanisms not recognised
-
PROTON-977 - handler appears to get ignored
-
PROTON-990 - [C++ binding] Examples fail to link in Visual Studio 2012, 2015
-
PROTON-1003 - ssl transport layer does not define an error handler
-
PROTON-1006 - Sending pre-settled messages over the python blocking api waits indefinetly
-
PROTON-1008 - Using a blank mech_list disables authentication
-
PROTON-1010 - BlockingConnection leaks sockets after close() is called
-
PROTON-1013 - Documentation: CyruSASL missing as an optional dependency
-
PROTON-1015 - Documentation: typos in the C++ tutorial
-
PROTON-1018 - Crash in pn_transport_finalize(transport.c) when logging level set to PN_TRACE_DRV
-
PROTON-1019 - Documentation: typos in the C++ API documentation
-
PROTON-1023 - Incorrect handling of failed attach for BlockingConnection
-
PROTON-1024 - Disconnect during close not handled correctly in BlockingConnection
-
PROTON-1028 - BlockingConnection leaks due to cyclical reference
-
PROTON-1029 - Do not fail hard if strerror_r fails.
-
PROTON-1030 - Reactor never freed if handler/global_handler set
-
PROTON-1031 - [python] Bump the module version to 0.11.0
-
PROTON-1033 - Update the revision of the libqpid-proton library to 4
-
PROTON-1034 - [Go binding] Windows build fails if Go language is installed but no gcc tool kit
-
PROTON-1042 - Can't distinguish between null target and null address on a target
下载:http://qpid.apache.org/download.html
来自:http://www.oschina.net/news/68205/qpid-proton-0-11-0