在开始编写缓存机制的路径之前,请记住服务和进程(SOA和BPM)的内容.它们旨在抽象出基于标准的界面背后某种业务功能的实际实现.
当你说有很高的响应时间时,你有没有分析延迟的来源是什么?
您调用的服务和流程应被视为黑盒子,即您不必知道封面后面发生了什么,只是它正在执行您要求它执行的功能.
但是,如果实现缓存,则假设您调用的服务没有副作用,例如更新数据,保留审计跟踪,通知其他方或系统事件等.即使您发现了技术实现缓存需求的方式实际上可能会破坏服务实现.对于您的应用程序,它看起来不错,但您可能会影响您不了解的其他系统或进程.
如果您确信自己知道自己在做什么,那么请务必查看缓存.通过存储响应对象在应用程序中实现它可能是最快的,但是其他应用程序无法使用它,因此性能优势将被本地化.如果采用这种方法,您可能仍然需要考虑构建一种选择性缓存机制,而不是应用于所有.
一些ESB甚至XML网关/设备都具有缓存功能.我知道IBM DataPower设备具有文档缓存功能,您可以在其中控制缓存哪些服务/ URL,以及这些缓存副本的生存时间.这种方法的优势在于为SAP服务的所有消费者提供与您所需的相同的性能提升.
还要记住,缓存会增加内存消耗,所以如果你不小心处理它,你可能会导致你的应用程序,或ESB或你实现它的任何内容耗尽内存.DataPower似乎有一种不幸的习惯,就是在我们遇到项目中遇到这个问题时,不告诉任何人就重置自己!:)
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
2547 次 |
| 最近记录: |