发布于 2014-11-07 03:20:18 | 256 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Apache Qpid 消息中间件

Qpid 是 Apache 开发的一款面向对象的消息中间件,它是一个 AMQP 的实现,可以和其他符合 AMQP 协议的系统进行通信。Qpid 提供了 C++/Python/Java/C# 等主流编程语言的客户端库,安装使用非常方便。相对于其他的 AMQP 实现,Qpid 社区十分活跃,有望成为标准 AMQP 中间件产品。除了符合 AMQP 基本要求之外,Qpid 提供了很多额外的 HA 特性,非常适于集群环境下的消息通信。


Qpid Proton 0.8 发布,此版本包括大量的 bug 修复,现已提供下载。更新内容请看发行说明

Bug 修复

  • [PROTON-436] - pn_data_dump is broken for complex types

  • [PROTON-474] - Incorrect mapping of TTL to JMSExpiration in JMS InboundTransformer

  • [PROTON-516] - [proton-c] Dispatcher frame buffer set to peer's max frame size.

  • [PROTON-543] - Frame Parser error if input stream is read before SASL is initialized in the transport

  • [PROTON-576] - proton-j: codec support for UTF-8 encoding and decoding appears broken?

  • [PROTON-582] - Perl language bindings do not properly identify integers from strings when encoding

  • [PROTON-587] - Proton 0.7 fails to compile with Visual Studio 2008

  • [PROTON-590] - If Proton receives a frame with an unexpected performative number it will SEGV

  • [PROTON-592] - Python test function common _ready() fails on windows

  • [PROTON-593] - Scripts for running java examples contain old paths

  • [PROTON-595] - Python test function MessengerApp.start fails on Windows

  • [PROTON-596] - There is no equivalent to 'config.sh' for windows

  • [PROTON-602] - Syntax error in perl bindings Data.pm for perl 10.5.1

  • [PROTON-603] - Python testReclaimCredit fails on Windows

  • [PROTON-604] - Unable to display usage information for perl example send.pl

  • [PROTON-606] - Python testReclaimCredit exposes test server messenger hang on windows

  • [PROTON-607] - Perl recv.pl shows error if a message has no subject

  • [PROTON-608] - seg fault if attach is sent before open and begin

  • [PROTON-610] - proton-c: messenger doesn't honour an advertised remote idle timeout

  • [PROTON-611] - [proton-c] transport buffer increased to peer's max frame size if initial output_size is not enough

  • [PROTON-615] - Cmake binding dependencies wrong (building python binding always; no dependency for include/proton/cproton.i)

  • [PROTON-616] - Use Symbol keys in message annotations

  • [PROTON-617] - Proton map/hash entries can disappear

  • [PROTON-618] - [proton-j] some of the .java source files have crlf line endings, most dont

  • [PROTON-619] - The heuristics in config.sh don't work for all build directory locations

  • [PROTON-624] - Corrupted payload with redelivered messages when transformer is jms

  • [PROTON-625] - prevert looping when map->load_factor exactly equals load

  • [PROTON-627] - Use Symbol keys in delivery annotations

  • [PROTON-631] - Potential null pointer exception if 'x-opt-jms-type' annotation is present but has a null value.

  • [PROTON-641] - pn_connection_t leaked when links not closed

  • [PROTON-646] - Perl message does not have the correct type when the body is a boolean with a FALSE value

  • [PROTON-648] - Memory leaks on aborted connections.

  • [PROTON-655] - URL parser fails to parse ActiveMQ dynamically generated address

  • [PROTON-656] - pn_transport_close_{head, tail} no longer return an error code on framing error.

  • [PROTON-660] - Fix openssl.c build on windows

  • [PROTON-661] - pn_message_save_* do not return correct message size when PN_OVERFLOW

  • [PROTON-666] - TransactionalState applied to indicate the txn-id before sending has no effect on the outgoing transfer frames

  • [PROTON-669] - proton-c: Messenger abstracts away connections, but it would be useful to fail fast for auth errors etc.

  • [PROTON-670] - proton-c: Messenger doesn't provide accessors for the links it is using

  • [PROTON-671] - proton-c: Messenger doesn't provide a way to set the link settlement modes it uses

  • [PROTON-672] - proton-c: Messenger doesn't support setting the transport tracer

  • [PROTON-673] - proton-c: Messenger doesn't provide a way to obtain the remote idle timeout

  • [PROTON-674] - proton-c: Messenger doesn't provide a way of setting the TTL on a subscription

  • [PROTON-675] - proton-c: Messenger doesn't provide a way of setting the SSL peer authentication mode

  • [PROTON-676] - proton-c: transport layer SSL failures not propagated back to Messenger in pni_connection_readable

  • [PROTON-677] - proton-c: transport incorrectly detaches all links with closed=true by default

  • [PROTON-679] - proton-c: add a "manual" link credit mode to Messenger

  • [PROTON-680] - proton-c: Messenger doesn't provide a way of obtaining link or delivery information

  • [PROTON-684] - Restrict IOCP enlistment to pn_selector_t usage scenarios in Windows

  • [PROTON-685] - calling free() on session with multiple Sender or Receiver links leads to ConcurrentModificationException

  • [PROTON-686] - va_copy is C99 (not C89) and is not supported by the Microsoft Visual Studio C compiler before VS 2013

  • [PROTON-687] - Memory corruption in proton-test

  • [PROTON-688] - pn_transport_unbind() doesn't reset all relevant trasnport state

  • [PROTON-689] - Python binding does not expose transport error details

  • [PROTON-690] - Fix Windows components for new Proton object/class refcounting mechanisms

  • [PROTON-694] - splitting contrib/JMSMappingOutboundTransformer's encoding and transformation

  • [PROTON-695] - New URL code causing invalid reads/writes according to valgrind

  • [PROTON-698] - ClassCastException occurs when testing equality of Binary instance against a different type of Object

  • [PROTON-699] - Messenger installed examples send,recv do not compile

  • [PROTON-701] - Windows ctest fixes for proton-c

  • [PROTON-702] - Windows proton-c selector can forget timer events

  • [PROTON-704] - delivery-count is set incorrectly during outbound transformation

  • [PROTON-706] - CMake fails - get_filename_component unknown component DIRECTORY

  • [PROTON-708] - C proton driver needs a getter function to access the pn_error so it can be cleared

  • [PROTON-709] - [proton-c] Windows 64-bit transport issue

  • [PROTON-712] - Seg fault due to missing NULL return value check of getprotobyname

  • [PROTON-714] - SSL buffer overflow with large frames

  • [PROTON-715] - [contrib/proton-jms] delivery-count is set incorrectly during Native outbound transformation

  • [PROTON-716] - Reject SSL clients that attempt to use SSLv3

  • [PROTON-717] - Disable SSL compression

  • [PROTON-718] - disable SSL v3 for proton-j

  • [PROTON-719] - Disable SSL v3 for Windows SChannel

  • [PROTON-720] - [Windows IO] Prints warning string as %d

  • [PROTON-724] - pn_transport_close_head doesn't generate the expected PN_TRANSPORT_HEAD_CLOSED event

  • [PROTON-725] - pni_parse_url does not properly handle Base64 in URL

  • [PROTON-728] - transport aborts when delivery ids are out of sequence

改进

  • [PROTON-429] - pn_bytes(size_t size, char *start) needs a const on the 'start' argument

  • [PROTON-465] - FindPerlLibs.cmake module in Proton behaves differently to Qpid's Perl detection

  • [PROTON-558] - Make friendly protocol field logging optional for low-memory devices

  • [PROTON-583] - Can move a bunch of things from .data to .rodata by adding const

  • [PROTON-585] - Can improve memory use by rearranging structs to eliminate padding

  • [PROTON-591] - There are two large, mostly empty tables used for dispatching incoming frames

  • [PROTON-597] - Improve the memory footprint of TrasportImpl

  • [PROTON-613] - update java messenger 'send' example behaviour to be more in line with the other language examples

  • [PROTON-620] - Remove unnecessary wrapped types from proton low level bindings

  • [PROTON-628] - split out usage of the buffer in MessageImpl#decode() to its own method

  • [PROTON-640] - IO completion port Windows IO for Proton

  • [PROTON-642] - SASL Servers need to be able to optionally handle clients that don't use SASL

  • [PROTON-647] - Implement an Event.copy or clone method

  • [PROTON-650] - proton-dump should include a man page

  • [PROTON-653] - Expose the version and build details for Proton in the Perl bindings.

  • [PROTON-657] - OSX: build proton with homebrew openssl

  • [PROTON-664] - add pom profile to allow creating souces jar during non-release builds.

  • [PROTON-668] - Document Proton-c IO restrictions for 0.8 release

  • [PROTON-693] - Python Url class to wrap C function pni_parse_url

  • [PROTON-705] - Windows: Allow C based tests to run directly from ctest/Visual Studio without having to set up environment

  • [PROTON-711] - [contrib/proton-jms] add support to message transformers for more efficient destination type annotation value

新特性

  • [PROTON-581] - SSL/TLS support for Proton-c on Windows

  • [PROTON-630] - [python] Add a setup.py for installing the python bindings via PyPi

  • [PROTON-651] - Export the proton version numbers via the bindings.

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千兆位以太网,这类问题会变得更为严重



历史版本 :
Java Message Service 客户端 Qpid JMS 0.28.0 发布
Apache Qpid Proton-J 0.24.0 发布,轻量级消息库
Apache Qpid Proton 0.18.1 发布,轻量级消息库
Apache Qpid JMS 0.27.0,Java Message Service 客户端
Apache Qpid Proton 0.18.0 发布,轻量级消息库
Apache Qpid JMS 0.26.0,Java Message Service 客户端
Apache Qpid JMS 0.24.0,Java Message Service 客户端
Apache Qpid Proton-J 0.20.0,轻量级消息库
Apache Qpid JMS 0.23.0,Java Message Service 客户端
Apache Qpid Proton-J 0.19.0,轻量级消息库
Apache Qpid Dispatch 0.8.0 发布,消息队列路由
Apache Qpid JMS 0.22.0,Java Message Service 客户端
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务