开源软件成熟度评测报告-分布式消息中间件

一、背景随着互联网技术和金融科技的不断发展,从RPC到Web Service,从SOA的推行再到RESTful以及云计算中PaaS与SaaS的推广,分布式架构在金融企业中得到了广泛应用,消息中间件则在分布式系统之间的通信、集成和整合上发挥了关键作用。分布式消息中间件通过高效、可靠的消息传递机制,降低应用系统之间的耦合性,实现高性能的数据交换,保障了分布式计算网络环境下高可用和一致性。面对诸多的分布...
摘要由CSDN通过智能技术生成

一、背景

随着互联网技术和金融科技的不断发展,从RPC到Web Service,从SOA的推行再到RESTful以及云计算中PaaS与SaaS的推广,分布式架构在金融企业中得到了广泛应用,消息中间件则在分布式系统之间的通信、集成和整合上发挥了关键作用。分布式消息中间件通过高效、可靠的消息传递机制,降低应用系统之间的耦合性,实现高性能的数据交换,保障了分布式计算网络环境下高可用和一致性。

面对诸多的分布式消息中间件,金融企业面临如何选择并确定适合企业长期发展的相应开源软件。金融行业开源软件研究工作组结合金融企业的实际应用场景,针对主流的开源分布式消息中间件建立评测并开展评测实施,以支撑金融企业选择成熟度高、适合企业需求的开源软件。

二、分布式消息中间件评测模型

分布式消息中间件评测模型基于金融行业开源软件成熟度评测整体模型建立。整体模型充分结合了开源软件的特性、系统工程领域对于软件产品质量的要求以及金融行业对于开源软件的使用需求。整体模型涵盖开源许可证、行业认可度、产品活力、服务支持、安全性、兼容性、可维护性、可扩展性、功能性、可靠性、易用性、性能效率等12大类评估属性,117个评测指标

分布式消息中间件主要用于分布式系统架构中,进行应用系统间的数据传输,已经在各种行业中广泛应用。开源分布式消息中间件种类很多,各有侧重,在引入时需要结合具体的应用场景,选择性价比最高的开源产品。因此,需要对分布式消息中间件进行全面评估,防范开源软件带来风险,为金融企业更好的应用开源软件提供支撑。

分布式消息中间件评测模型重点围绕金融企业关注的特性和可评测的指标建立,涵盖整体模型的12方面评估属性,分布式消息中间件评测模型具体详见已发布的《金融业开源软件研究评测——分布式消息中间件评测模型》。

三、分布式消息中间件简介

消息中间件具有消息存储、转发、过滤和排队等功能,在分布式环境下扩展进程间的通信,主要用于业务系统解耦、消息异步传递、错峰流控等场景中。除了传统的商业产品如IBM WebSphere MQ、东方通TongLINK/Q之外,开源消息中间件技术近几年发展迅速,常见的有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaQ、RocketMQ等,并已经在许多行业得到广泛应用。

经过前期对金融企业应用情况和业务需求的调研,以及对当前技术发展趋势的考虑,本次我们选取了快速发展的Kafka,以及应用广泛的RabbitMQ作为评测对象,后续也将对其他消息队列中间件开展评测。

(一)Kafka

Kafka是由LinkedIn公司在2010年12月开源的一种高吞吐量的分布式消息系统,属于Apache软件基金会的顶级子项目之一,目前已被越来越多的开源分布式处理系统集成。Kafka适用于大规模消息处理的应用场景,具有良好的可扩展性和性能优势。与传统消息系统不同,Kafka还被广泛应用于日志聚合、流式数据处理等场景中。

Kafka具有高性能、高可用、分布式的技术特点。Kafka强大的负载均衡和副本策略保证了节点的可靠性和高可用性,支持节点的动态扩展;在设计实现上与传统消息中间件有较大差异,使用文件系统来管理消息的生命周期,能够在常数时间复杂度内提供消息持久化和数据访问,支持消息的批量发送和压缩传输,性能表现优异。由于其并非作为传统MQ设计,没有遵循主流消息服务规范,因此在事务、协议兼容等方面有所欠缺。

(二)RabbitMQ

2007年,基于AMQP标准的RabbitMQ 1.0版本由Rabbit技术公司发布,2010年被SpringSource收购,2013年并入Pivotal,现由Pivotal Software提供商业支持。RabbitMQ是一种基于Erlang实现AMQP协议的开源消息中间件,它提供了功能强大的消息队列服务,常用于Web服务器快速响应请求,适合跨平台、跨语言的消息传输。

RabbitMQ具有消息可靠传输、灵活路由策略、多协议支持等特点。RabbitMQ具有健壮的消息确认机制、用户角色体系、以及认证和授权管理功能,保障消息可靠传输。灵活的交换器和绑定规则设置提供了强大的消息路由功能,同时支持AMQP、HTTP、STOMP、MQTT等协议。此外,RabbitMQ多节点集群的联合不依赖外部服务,支持服务的高可用,但服务的负载均衡需要使用第三方组件。

四、评测环境

根据实际业务使用情况和开源软件主流的稳定版本,选择待评测的开源软件,如下表中所示。

图片描述

表1 软件版本信息

参考生产环境中业务系统的实际运行环境搭建评测环境,针对Kafka和RabbitMQ各搭建3节点物理服务器的验证环境,每台服务器配置如下表。

图片描述

表2 测试环境信息

五、开源软件许可证对比

开源软件许可证是针对开源软件的授权条款,规定了包括商业用途、分发、修改、专利授权、私用、公开源码、放置许可协议与版权信息、使用网络分发、使用相同协议、声明变更、承担责任、使用商标等12方面的使用要求与限制。用户使用开源软件进行商业化时,需遵守开源软件许可证条款的规定。

经过扫描Kafka和RabbitMQ开源软件源代码,Kafka使用的开源许可证为Apache 2.0,RabbitMQ使用的开源许可证为MPL(Mozilla Public License)1.1。

图片描述

表3 开源软件许可证对比

Kafka遵循的Apache2.0协议对于开源软件源代码使用的限制较少,

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值