辑,随着业务的增加,维护简直就是一场恶梦。
f图:使用ESB中介和代理之后
各个应用的逻辑很清晰,每个应用都只需要关心如何暴露自己的服务,而调用的应用只需要知道如何调用服务,至于怎么做,去找谁,则完全交给ESB来完成。
开源ESB
以下是几个比较流行且好用的开源的esb:
MuleESB:MuleSoft是MuleESB创建者。MuleESB是一种广泛的开源ESB下载。
WSO2ESB:WSO2ESB旨在极端轻量型和可扩展性。它包括服务交互图形编辑和XML支持。
ApacheServiceMixESB:ApacheServiceMixESB以Java业务集成为标准为基础,支持Spri
g。
如何选择ESB
所有的ESB产品都应该可以构建和部署服务。包括对遗留系统的整理、消息的路由、消息格式的转换、执行协议的调解等。
首先我们要看ESB是否具有以下特性:
f互通性抽象化资源位置的虚拟化扩展能力和管理服务是否具有平台无关性,即跨平台松耦合
等。
上面列出的往往很评估,但是ESB本身具有的特性往往更容易识别和评估。
ESB所必须具备的功能:
路由协议桥接消息转换服务代理托管
扩展的功能有:
资源适配器可靠的消息传递事件处理交易的完整性管理消息格式调解负载均衡消息验证能力调解
等。
其实,对于如何选择本身就是一个跟业务相关的问题,以确定你是否选择ESB以及选择什么样的esb来满足你的应用需求。
1你选要集成三个或者更多的应用或服务吗?如果你需要在两个应用间通信,使用点对点集成更容易。
2未来你真的需要插入更多的应用吗?如果是需要的,那么你可以选择使用ESB。
3你是否需要使用不止一种类型的通信协议?如果是多种协议,那么可以选择使用ESB。
4你需要象分叉和聚集消息流或者基于内容的路由的消息路由功能吗?许多应用不需要这些扩展。
5你需要通过其他应用为消费发布服务吗?如果需要可以考虑选择ESB。6你拥有多于10个的应用要集成吗?如果需要可以考虑选择ESB。7你真的需要ESB的可扩展性吗?如果需要可以考虑选择ESB。
f以上仅仅是列出了想到的一些问题,具体的情况还需要根据具体的需求进行分析和处理,如果简单的业务其实不必“大炮打蚊子”,毕竟合适才是最好的!
fr