openhub
本文介绍OpenHub框架 -基于Apache Camel的新的开源集成解决方案。 本文回答了一些问题,为什么您应该关心另一个集成框架,强弱属性以及如何使用OpenHub启动新项目。
OpenHub框架是Apache Camel,但经过改进……
当然,您只能使用Apache Camel,但是您需要添加许多其他库,检查它们的兼容性,准备数据库和应用程序服务器,然后一起配置和调整所有内容以提高生产质量。 此外,要解决实际问题,您通常需要的不仅仅是基本功能……
OpenHub框架汇集了最好的应用程序库和框架,并创建了一个经过验证,测试和支持的应用程序堆栈,您可以将其应用并立即开始集成。 此外,您将获得仅在商业版本中可用的企业功能。
此外,OpenHub框架提供了一种有效的方法来构造项目,创建路线并对其进行测试。 它基于多年的实施集成项目经验。 但是,由您决定使用哪种方法,无论是OpenHub的功能还是直接使用Apache Camel 。 使用骆驼的功能没有任何限制。 您可以从Camel,OpenHub框架或其他第三方组件中选择功能。 当然,您可以使用Apache Camel可以使用的相同工具,例如RedHat®JBoss®Fuse或Hawtio 。
我们的建议是最好两者兼用–使用OpenHub框架作为基础(定义项目结构,应用程序堆栈,为将来的使用提供很多有用的功能……),以及所需的任何Camel功能,以及可以使用的第三方工具与Apache Camel合作 。
建筑
OpenHub框架扩展了Apache Camel,因此基础架构来自Apache Camel。 我们使用以下库和框架创建了完整的应用程序堆栈:
- Sprint Boot
- Spring框架
- Spring Security解决了安全性问题
- Spring Web Services是Web服务通信的主要组件
- Hibernate实现持久化
- PostgreSQL数据库(或用于单元测试的H2 DB )
- Apache Tomcat应用程序服务器
- Hazelcast缓存/内存网格
OpenHub对数据库和应用程序服务器是中立的。 OpenHub支持本地安装和云安装。
OpenHub框架的创建考虑了灵活性–您可以使用Camel,OpenHub的实现/扩展实现,也可以编写自己的实现。
为什么要使用OpenHub框架?
OpenHub具有企业功能,例如异步消息传递模型,集群支持和其自己的管理控制台。
在异步消息传递模型中实现了以下模式:
- 父子概念 –如果一条消息太复杂而无法处理,则可以将其拆分为较小的子消息(部分消息),
- 过时的消息 -此功能检查重复和过期的呼叫,
- 漏斗用于过滤特定集成点处的并发消息。 这种过滤可确保即使是按保证的顺序(可选选项),一次只处理一条消息,
- 保证的消息处理顺序可确保传入消息的处理顺序,
- 向被叫方系统确认 –处理异步消息(处于最终状态)时,OpenHub可以将有关处理结果的信息传输给被叫方,系统,
- 监视/警报 –定义用于监视数据库数据的度量,如果任何度量超出其限制,则将激活警报并可以执行进一步的操作。
从性能的角度来看,同步消息没有任何限制-它与Apache Camel一样快。 对于异步消息,默认情况下,我们使用数据库来保存状态-尽管从性能的角度来看,这在某些情况下可能是瓶颈,但它仍然具有许多优点。 到目前为止,我们还没有在实际项目中达到性能极限,但对于真正需要性能的项目,我们不会推荐它。 另一方面,我们认为每个公司都有一个数据库,因此我们也想将其重用于OpenHub。 但是,仍有可能在您的公司中使用JMS / MQ系统来支持异步消息传递。
建立新专案
参考OpenHub框架的父构件创建新的Maven项目:
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.openhubframework.ri</groupId><artifactId>ri-openhub</artifactId><version>1.0.0-SNAPSHOT</version><name>OpenHub - Reference implementation</name><packaging>pom</packaging><parent><groupId>org.openhubframework</groupId><artifactId>openhub</artifactId><version>2.0.0.RC1</version></parent><modules><module>openhub-ext</module><module>openhub-war</module></modules>
...
我们建议使用至少两个模块创建以下项目结构:
- 项目 –用于项目特定路线和业务逻辑的模块
- war –一起构建该项目和OpenHub框架的模块
我们使用基本的集成方案创建了参考项目实施 。
资料来源
- 网址: www.openhubframework.org
- Wiki: https : //openhubframework.atlassian.net
- GitHub OpenHub: https : //github.com/OpenWiseSolutions/openhub-framework
- GitHub OpenHub-RI: https : //github.com/OpenWiseSolutions/openhub-ri
翻译自: https://www.javacodegeeks.com/2017/10/introducing-openhub-framework.html
openhub