Apache Camel 介绍

2022-12-19 0 778

随着民营企业INS13ZD结构调整的到来,越来越多的民营企业采用者还是将他们的应用领域往云上北迁,虽然INS13ZD北迁不是操之过急的,透过软件控制系统的形式将云上云下控制系统贯通就变成了一个民营企业INS13ZD应用领域结构调整的重中之重难题。

在软件控制系统工程项目中我们面临的难题主要分为三类,两类是要对特有协定展开网络连接,两类是要紧密结合销售业务准则撰写相应的处置方法论。从表面看这三类难题的异药并不大,我们用几十行标识符就能解决两个控制系统的互通的难题, 但是虽然应用领域软件控制系统涉及到环境复杂,假如不对须要软件控制系统的可视化协定展开抽象化,不对下层的销售业务方法论展开可视化,很难提升标识符的F83E43Se度。当须要同时对十多个甚至十多个控制系统展开软件控制系统时,现代的开发形式效率十分低效率。

Apache Camel 是什么?

Apache Camel作为软件控制系统工程项目的法宝,针对应用领域软件控制系统情景的抽象化出了一套最新消息可视化模型,透过模块的形式展开服务器端控制系统的网络连接,现阶段Apache Camel已经提供更多了300多种不同模块能够网络连接HTTP,JMS,TCP,WS-*,WebSocket 等多种不同数据传输协定。Apache Camel紧密结合民营开发工具领域软件控制系统模式(EIP)的特点提供更多了最新消息路由器,最新消息转换等领域特定语言(DSL),极大降低了软件控制系统应用领域的开发技术难度。Apache Camel透过URI的形式来表述须要软件控制系统的应用领域结点重要信息,采用者可以按照销售业务需求采用DSL快速撰写最新消息路由器准则,而无须关注软件控制系统协定的技术细节难题。与现代的民营企业软件控制系统服务项目汇流排(ESB)相比,Apache Camel的核心库十分轻巧(是一个只有几M的jar包),可以方便地与其他控制系统展开软件控制系统。

下面那段Apache Camel的采用者如是说来自Claus Ibsen最近写的一则十分有趣的Camel如是说文章

Apache Camel工程项目从成立到现在以及差不多12年发展史了,现阶段这个工程项目被应用领域在制造业,民营企业重要信息控制系统,或是政府应用领域中。

在英国,FAA

就采用Camel来处置国际航班控制,所以任何坐火车在英国空域飞行的乘客(大概占全世界15%)单厢加进Camel。

Camel也被应用领域在英国的商业银行和金融民营企业中, 假如你采用商业银行提款,或是网银投币时,Camel就有可能在前台帮你在商业银行间市场数据传输这些交易数据。

假如你是Netflix的订户采用者,Camel会参与你的订货支付的操作。 假如你采用了UPS提供更多的外卖服务项目,那么Camel同样会帮你跟踪你的包覆重要信息。

Apache Camel的小发展史

Apache Camel的创建者是Apache ServiceMix工程项目的 EIP模块,当时Apache ActiveMQ作为当红的最新消息中间件急需一个好的编程界面来提高采用者易用性。 就这样James Strachan在Apache ActiveMQ 工程项目下创建了Camel子工程项目,并且与2007年6月发布了 Apache Camel 1.0 版本。 当时我在IONA参与的是Apache CXF开发工作,当时Camel社区须要与Apache CXF展开软件控制系统提供更多WS*的解决方案。 于是我在2007年的夏天开始参与Apache Camel的开发,前后提交了很多Patch,2008年春节前我正式被邀请成为Apache ActiveMQ的committer,可以直接给Apache Camel提交标识符。

Apache Camel是在2009年前后毕业成为Apache顶级工程项目(拥有http://camel.apache.org独立域名),虽然须要更改包名以及名字空间,同时Apache Camel API也展开了比较大改动,经过3个里程碑发布,Apache Camel社区于2009年8月发布了 2.0 版本。 之后Apache Camel差不多一个季度一个第二位小版本的速度持续发展,直到2011年Camel 2.7.0发布之后,因为Camel已经发展了大量的社区采用者,很多人已经将Camel应用领域于生产控制系统中,为了配合采用者的生产的须要,我们制定了两个季度一个小版本,不定期的第三位bug修复版本的发布策略。

虽然社区有人在谈论Camel 3.0版本的发布,但是虽然Camel之前表述的DSL以及API都比较稳定,我们一直都没有开始Apache Camel 3.x的开发。 直到2018年10月,Guillaume Nodet 向我们展示了新的Camel 3.x分支,才真正宣告Apache Camel 3.x 时代的到来。

Apache Camel 3.x

从Camel 2.x 到 Camel 3.x 的十年的时间,技术发展迅猛软件控制系统市场也发生了很大的变化。十年前 SOA是一个十分时髦的名词,各大民营企业都在建设自己的ESB来展开应用领域软件控制系统;现在我们谈得更多是微服务项目,云原生,大而全的ESB开始被小而专的基于Serverless架构的Lamda所替代,更多应用领域软件控制系统是透过几行简单的胶水标识符实现,至于这些胶水标识符在那运行已经不是开发人员要考虑的难题。INS13ZD支持是Camel 3.x须要解决的重中之重难题。

在云原生环境下, 应用领域大多采用容器化形式按需运行,这就要求应用领域须要快速启动。在Apache Camel INS13ZD路线图中,我们首先须要解决的难题是如何提高Camel应用领域的启动速度。虽然Apache Camel的200多个模块都是基于Java写的,所以Camel 3.x会继续挖掘JDK的潜力,例如JDK 9 所提供更多的模块化支持给启动我们带来一线生机,我们可以根据销售业务需要定制相关的Camel应用领域版本,裁剪不必要的部分来进一步提升Camel应用领域的执行效率。十年前ServiceMix 4基于OSGi内核构建ESB的主要工作就是由Guillaume Nodet完成的, 现在Camel 3.x模块化工作也是由他一手操办。

在云原生时代,按销售业务需求弹性的伸缩成为INS13ZD应用领域的基本功能,对于Apache Camel来说也不例外,因此在去年中的时候Nicola Ferraro发起一个名为camel-k的工程项目。 该工程项目的目标是让Apache Camel应用领域更好地在Kubernetes环境下运行。采用者可以透过kamel指令将camel应用领域部署到Kubernetes集群中。camel-k透过借助knative工程项目eventing的支持,让我们可以像撰写serverless 函数那样表述camel 路由器准则,而无须考虑部署和按需展开弹性伸缩的难题。我们可以透过这篇文章了解有关camel-k的详细重要信息。

现阶段Apache Camel的INS13ZD支持才刚刚开始, 预计在2019年底Apache Camel会发布3.0正式版本,假如我们对CamelINS13ZD感兴趣的话,想参与到Camel 3.x的开发或是是想将Camel应用领域到生产控制系统中,可以关注Camel社区的讨论,并与我联系,我将尽我所能帮助我们。

~~~~~~~~2021-06-13 更新~~~~~~

经过两年的开发Apache Camel 3 已经发了10小版本, 现在正在开发Camel 3.11.x版本。

欢迎我们注册ApacheCon Asia 2021,了解Apache Camel的最新进展。

姜宁:ApacheCon Asia 软件控制系统主题如是说5 赞同 · 3 评论文章Apache Camel 介绍

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务