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 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 发布,高性能/轻量级通讯库下载地址